Windows 10 Docker Redmine
1. 前置准备
安装并启动
安装时启用 WSL 2 backend(Docker Desktop 默认推荐)
打开 PowerShell 验证:
docker version
docker compose version
2. 创建 Compose 文件
在 PowerShell 执行:
mkdir d:\docker\redmine
cd d:\docker\redmine
notepad docker-compose.yml
将下列内容粘贴并保存。请把示例密码替换成自己的强密码,尤其是 MYSQL_ROOT_PASSWORD 与 REDMINE_SECRET_KEY_BASE。
services:
db:
image: mysql:8.0
container_name: redmine-db
restart: unless-stopped
command: --default-authentication-plugin=mysql_native_password
environment:
MYSQL_ROOT_PASSWORD: "ChangeThisRootPassword_2026!"
MYSQL_DATABASE: "redmine"
MYSQL_USER: "redmine"
MYSQL_PASSWORD: "ChangeThisDatabasePassword_2026!"
volumes:
- mysql_data:/var/lib/mysql
networks:
- redmine-net
redmine:
image: redmine:latest
container_name: redmine
restart: unless-stopped
depends_on:
- db
ports:
- "8080:3000"
environment:
REDMINE_DB_MYSQL: "db"
REDMINE_DB_DATABASE: "redmine"
REDMINE_DB_USERNAME: "redmine"
REDMINE_DB_PASSWORD: "ChangeThisDatabasePassword_2026!"
REDMINE_SECRET_KEY_BASE: "ReplaceWithARandomLongSecretString_AtLeast32Characters"
volumes:
- redmine_files:/usr/src/redmine/files
networks:
- redmine-net
volumes:
mysql_data:
redmine_files:
networks:
redmine-net:
这里使用 Docker named volumes 保存 MySQL 数据和 Redmine 附件文件,因此即使重建容器,通常业务数据仍会保留;不要随意执行带 -v 的删除命令。官方镜像通过 REDMINE_DB_MYSQL、数据库用户名和密码连接 MySQL,并可将宿主机端口映射到 Redmine 的 3000 端口。 hub.docker
3. 启动 Redmine
在 C:\docker\redmine 目录执行:
docker compose up -d
检查容器状态:
docker compose ps
首次启动需要初始化数据库,等约 1–3 分钟后访问:
http://localhost:8080
默认管理员账号通常是:
用户名:admin
密码:admin
首次登录后会要求修改密码。官方 Docker Hub 示例也说明可通过 http://localhost:8080 访问 Compose 部署的 Redmine。 hub.docker
4. 常用运维命令
# 查看实时日志;首次启动或异常时最有用
docker compose logs -f
# 停止服务,但保留数据卷
docker compose stop
# 再次启动
docker compose start
# 停止并删除容器、网络,但保留 named volumes
docker compose down
# 拉取新版镜像并重建
docker compose pull
docker compose up -d
5. 常见问题
8080 端口被占用:把配置中的
"8080:3000"改为"8090:3000",再访问http://localhost:8090。页面打不开:确认 Docker Desktop 已启动,并运行
docker compose ps查看redmine、redmine-db是否均为Up。Redmine 连不上数据库:执行
docker compose logs db与docker compose logs redmine,重点检查两处REDMINE_DB_PASSWORD/MYSQL_PASSWORD是否完全一致。局域网访问:使用
http://Windows主机IP:8080;同时需要在 Windows 防火墙放行 TCP 8080。若只供本机使用,保持localhost访问即可。