使用Docker安装GitLab可以通过以下步骤完成。整个过程分为几个阶段:安装Docker、拉取GitLab镜像、运行容器、配置和访问。
1. 安装Docker
如果尚未安装Docker,请先根据系统环境安装:
- Ubuntu/Debian:
1
2
3sudo apt update
sudo apt install docker.io
sudo systemctl enable --now docker - CentOS:
1
2
3
4sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker - 通用脚本安装(任何Linux发行版):
1
2curl -fsSL https://get.docker.com | sh
sudo systemctl enable --now docker
2. 拉取GitLab镜像
从Docker Hub拉取官方GitLab社区版镜像:
1 | docker pull gitlab/gitlab-ce:latest |
3. 运行GitLab容器
使用以下命令启动GitLab容器。注意替换以下参数:
--hostname
: 你的GitLab域名或IP(本地测试可用服务器IP或localhost
)。--publish
: 端口映射(格式:宿主机端口:容器端口
)。--volume
: 数据持久化目录(确保目录存在)。
1 | sudo docker run --detach \ |
参数说明:
--hostname
: GitLab访问地址(如无域名,用服务器IP)。--publish
: 映射HTTP(80)、HTTPS(443)、SSH(22)端口。若宿主机端口冲突,可修改左侧端口(如8080:80
)。--volume
: 持久化配置、日志和数据。--shm-size
: 解决Sidekiq内存不足问题。
4. 初始配置与访问
等待初始化完成(首次启动需1-5分钟):
1
docker logs -f gitlab # 查看实时日志,直到出现“GitLab setup finished”
访问GitLab:
- 浏览器打开
http://<宿主机IP>
(若映射端口非80,需加端口号,如http://IP:8080
)。 - 首次登录用户名:
root
,密码需通过以下命令获取:1
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password
- 浏览器打开
配置SSL(可选):
- 修改
/srv/gitlab/config/gitlab.rb
,启用SSL并配置证书路径。 - 重新配置GitLab:
1
docker exec -it gitlab gitlab-ctl reconfigure
- 修改
5. 后续管理
停止/启动容器:
1
2docker stop gitlab
docker start gitlab升级GitLab:
- 拉取新镜像:
1
docker pull gitlab/gitlab-ce:latest
- 停止并删除旧容器(数据卷会保留):
1
2docker stop gitlab
docker rm gitlab - 重新运行步骤3的命令启动新容器。
- 拉取新镜像:
备份与恢复:
- 备份:备份文件保存在
1
docker exec -t gitlab gitlab-backup create
/srv/gitlab/data/backups
。 - 恢复:
1
docker exec -it gitlab gitlab-backup restore BACKUP=备份文件名
- 备份:
常见问题
- 端口冲突:修改
--publish
参数中的宿主机端口(如8080:80
)。 - 内存不足:建议宿主机至少4GB内存,否则可能启动失败。
- 无法访问:检查防火墙或安全组是否放行端口(80/443/22)。
通过以上步骤,你可以快速在Docker中部署GitLab。根据实际需求调整域名、端口和数据存储路径即可。