gitlab容器化部署需用官方镜像启动服务,关键点包括端口映射(如80:80、2222:22)、三卷持久化(config/logs/data)、external_url严格匹配访问地址,且宿主机需满足4核cpu+4gb内存+ssd硬盘等资源要求。

在 Docker 中运行容器化的 GitLab,核心是用官方 gitlab/gitlab-ce 镜像启动一个带持久化存储、端口映射和基础配置的服务容器。整个过程不复杂,但几个关键点容易出错,比如端口冲突、路径权限、内存不足或 external_url 配置不匹配。
准备基础环境
确保宿主机已安装 Docker(建议 24.0+)和 docker-compose(v2.20+),并验证服务正常:
- 执行
docker --version和docker compose version确认版本 - 运行
systemctl status docker检查 Docker 服务是否 active - GitLab 对资源有明确要求:最低 4 核 CPU + 4GB 内存 + 2GB swap,硬盘建议 SSD,容量预留 ≥20GB(含日志、仓库、制品)
创建并运行 GitLab 容器
推荐使用 docker compose 管理,便于维护和复用。在空目录中创建 docker-compose.yml:
- 镜像指定稳定版,例如
gitlab/gitlab-ce:16.11.5-ce.0(避免用latest,防止意外升级破坏兼容性) -
external_url必须填完整 URL,如http://gitlab.example.com或http://192.168.1.100:3000,且要与后续访问地址完全一致 - SSH 端口需显式映射并同步配置:
-p 222:22对应gitlab_rails['gitlab_shell_ssh_port'] = 222 - 三个
volumes路径必须提前创建,且宿主机目录属主设为root:root,权限为755(GitLab 启动时会自动 chown)
启动与首次访问
在 docker-compose.yml 所在目录执行:
-
docker compose up -d启动容器(首次启动可能耗时 3–5 分钟,状态从health: starting变为healthy才算就绪) - 等待容器健康后,浏览器打开
external_url地址(如http://192.168.1.100:3000) - 初始管理员账号为
root,密码位于./gitlab/config/initial_root_password(文件仅生成一次,启动后立即查看) - 登录后可在 Admin Area → Settings → Preferences 中切换语言为中文,并保存刷新
常见问题快速应对
若页面打不开或报 502 错误,优先检查:
- 宿主机 3000(或你映射的 HTTP 端口)是否被其他进程占用?可用
ss -tuln | grep :3000查看 -
external_url中的协议(http还是https)、IP/域名、端口是否与实际访问方式严格一致 - 宿主机磁盘空间是否充足?
df -h查看/var/opt/gitlab映射路径所在分区 - 容器日志是否有关键报错?执行
docker compose logs -f gitlab | grep -i error











