拉取镜像
docker pull gitlab/gitlab-ce:latest
查看镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
stirlingtools/stirling-pdf latest ec0290ba5c2a 13 days ago 2.09GB
gitlab/gitlab-runner latest def4bcd136f2 4 weeks ago 314MB
registry.gitlab.com/gitlab-org/gitlab-runner/gitlab-runner-helper x86_64-v18.3.0 c909dca3aaae 4 weeks ago 89.6MB
gitlab/gitlab-ce latest db5c72135fb3 4 weeks ago 3.75GB
sonatype/nexus3 latest 4e1de2def691 4 weeks ago 728MB
registry.gitlab.com/gitlab-org/cli latest d4a39a61254e 5 weeks ago 92.2MB
hello-world latest 1b44b5a3e06a 5 weeks ago 10.1kB
node 21 5c8697e82213 16 months ago 1.1GB
node 14 1d12470fa662 2 years ago 912MB
启动容器
# 启动容器
docker run \
-itd \
-p 9980:80 \
-p 9922:22 \
-v /home/gitlab/etc:/etc/gitlab \
-v /home/gitlab/log:/var/log/gitlab \
-v /home/gitlab/opt:/var/opt/gitlab \
--restart always \
--privileged=true \
--name gitlab \
gitlab/gitlab-ce
各个参数的含义如下:
-
-itd:这是三个参数的组合-i:保持标准输入打开,允许交互-t:分配一个伪终端(terminal)-d:后台运行容器,并返回容器 ID
-
端口映射参数
-p 9980:80:将容器内的 80 端口(GitLab 的 Web 界面默认端口)映射到宿主机的 9980 端口-p 9922:22:将容器内的 22 端口(SSH 服务端口)映射到宿主机的 9922 端口
-
数据卷挂载参数(用于持久化存储 GitLab 数据)
-v /home/gitlab/etc:/etc/gitlab:将 GitLab 的配置文件目录挂载到宿主机的/home/gitlab/etc-v /home/gitlab/log:/var/log/gitlab:将 GitLab 的日志目录挂载到宿主机的/home/gitlab/log-v /home/gitlab/opt:/var/opt/gitlab:将 GitLab 的数据目录挂载到宿主机的/home/gitlab/opt
-
其他参数
--restart always:设置容器的重启策略为 "总是重启",即使宿主机重启也会自动启动该容器--privileged=true:授予容器特权模式,使其拥有更多的系统权限(GitLab 某些功能需要)--name gitlab:为容器指定一个名称 "gitlab",方便后续管理gitlab/gitlab-ce:指定要运行的镜像,这里使用的是 GitLab 社区版镜像
容器内参数调整
以下操作都在容器内进行
- 进入容器内
docker exec -it gitlab /bin/bash
2.编辑 gitlab 配置文件
2.1 找到以下配置项按照你自己的 ip 进行配置
vi /etc/gitlab/gitlab.rb
# gitlab 访问 ip 地址或域名,默认为80端口
external_url 'http://172.24.8.211'
# ssh 主机 ip
gitlab_rails['gitlab_ssh_host'] = '172.24.8.211'
# ssh 连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
2.2 让配置生效
gitlab-ctl reconfigure
2.3 修改容器的端口
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
gitlab:
## Web server settings (note: host is the FQDN, do not include http://)
host: 172.24.8.211 # 此处自动映射 gitlab.rb 文件中的配置
port: 9980 # 改这里端口
https: false
2.4 重启服务
gitlab-ctl restart
2.5 退出容器
exit
浏览器中查看 gitlab
需等待一会等服务完全启动
open http://172.24.8.211:9980
修改初始密码
进入容器中,查看初始密码,得到密码后,首次登陆后,修改初始密码
sudo docker exec -it gitlab grep 'Password:' /etc/gitlab/initial_root_password