最简方式是直接用docker启动gitlab容器,但必须正确配置端口、持久化目录(/config、/logs、/data)和external_url访问地址,否则重启丢数据、页面跳转错、ssh克隆失败;需先安装docker 20.10+,拉取gitlab/gitlab-ce镜像,挂载三目录,通过gitlab_omnibus_config指定external_url。

直接用 Docker 启动 GitLab 容器是最简方式,但关键在端口、目录和域名三处配置不能错。官方镜像启动快,但默认不持久化,首次运行后必须挂载配置、日志、数据三个目录,否则重启即丢所有项目和用户。
准备基础环境
确保已安装 Docker(20.10+)和 docker-compose(可选但推荐)。执行一键脚本即可快速安装:
- Ubuntu/CentOS:bash
- 验证:docker --version && docker info | grep "Storage Driver"
- 建议分配至少 4GB 内存和 2 核 CPU,GitLab 启动后常驻内存约 2.5GB+
拉取镜像并创建持久化目录
使用官方 CE 镜像,避免第三方中文版(如 twang2218),后期升级易出问题:
- docker pull gitlab/gitlab-ce:latest(或指定版本如 16.11.5-ce.0)
- 创建目录结构(路径可自定义,但需保持三类分离):
mkdir -p /srv/gitlab/{config,logs,data}
运行容器并设置访问地址
必须通过 GITLAB_OMNIBUS_CONFIG 指定 external_url,否则 Web 页面跳转、邮件链接、SSH 克隆地址全错:
- 若用 IP 访问(如服务器 IP 是 192.168.1.100):
docker run -d \
--hostname gitlab.local \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://192.168.1.100:8080'; gitlab_rails['gitlab_shell_ssh_port']=2222;" \
-p 8080:80 -p 2222:22 \
-v /srv/gitlab/config:/etc/gitlab \
-v /srv/gitlab/logs:/var/log/gitlab \
-v /srv/gitlab/data:/var/opt/gitlab \
--name gitlab --restart always \
gitlab/gitlab-ce:latest - 若用域名(如 gitlab.example.com),需提前配好 DNS 或本地 hosts,并把 external_url 改为 http://gitlab.example.com
等待初始化并首次登录
容器启动后需 3–5 分钟完成内部配置(可用 docker logs -f gitlab 观察 “gitlab Reconfigured!”):
- 浏览器打开 http://[IP或域名]:8080
- 首次访问会提示设置 root 用户密码(8 位以上,含大小写字母+数字)
- 设置完成后用 root / 你设的密码登录即可











