原文链接: https://www.cnblogs.com/zuxing/articles/9329152.html
参考文档: https://hub.docker.com/r/beginor/gitlab-ce/
一、获取镜像
方法1:
docker pull beginor/gitlab-ce:11.3.0-ce.0
方法2:
如果服务器网路不好或者pull不下来镜像,只能在其它网路比较好的机器上pull下来镜像,导出成一个文件,再下载上传到网路不好的机器上,然后再从文件中导出来,这样在网络不好的机器上也能使用docker镜像了。
cd /data/tmp
xz -d beginor-gitlab-ce-11.3.0-ce.0.tar.xz
docker load < beginor-gitlab-ce-11.3.0-ce.0.tar
二、运行
1、通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。
rm -rf /data/gitlab
mkdir -p /data/gitlab/etc /data/gitlab/log /data/gitlab/data
2、如果启用了防火墙,则先进行端口的放通
firewall-cmd --permanent --add-port=9922/tcp
firewall-cmd --permanent --add-port=9980/tcp
firewall-cmd --reload
firewall-cmd --list-all
3、接着就可以开始运行 Docker 镜像了。 我的建议是使用 unless-stopped 作为重启策略, 因为这样可以手工停止容器, 方便维护。
docker run \
--detach \
--name gitlab \
--restart unless-stopped \
-p 9922:22 \
-p 9980:9980 \
-v /data/gitlab/etc:/etc/gitlab \
-v /data/gitlab/log:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
beginor/gitlab-ce:11.3.0-ce.0
三、配置GitLab主机名
修改 /data/gitlab/etc/gitlab.rb
nano /data/gitlab/etc/gitlab.rb
--------------------------------------------------------------------------
gitlab_rails['gitlab_ssh_host'] = '192.168.56.101'
gitlab_rails['gitlab_shell_ssh_port'] = 9922
external_url 'http://192.168.56.101:9980'
nginx['listen_port'] = 9980
nginx['redirect_http_to_https_port'] = 9980
--------------------------------------------------------------------------
如果还是不能正常访问的话,检查端口是否被占用。
四、配置并启动GitLab
像上面步骤修改了 GitLab 的 ip 地址一样,临时修改了GitLab的配置之后,得执行如下的命令,应用重新配好的配置并重启 GitLab,然后查看 GitLab 的状态。
因为是容器,所以要进入到gitlab容器中执行命令:
docker exec -ti gitlab /bin/bash
gitlab-ctl reconfigure
gitlab-ctl restart
gitlab-ctl status
五、登陆
打开浏览器,输入本机的 ip 地址并登陆:
http://192.168.56.101:9980
默认帐户的用户名是root,第一次访问时,将被重定向到密码重置屏幕,登录后,您可以更改用户名。
六、常用的几个Gitlab命令
# 重新应用gitlab的配置
gitlab-ctl reconfigure
# 重启gitlab服务
gitlab-ctl restart
# 查看gitlab运行状态
gitlab-ctl status
#停止gitlab服务
gitlab-ctl stop
# 查看gitlab运行日志
gitlab-ctl tail
# 停止相关数据连接服务
gitlab-ctl stop unicorn
gitlab-ctl stop sideki
七、错误
1、docker启动报错信息如下:
Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen<strong>解决:</strong>
解决:
检查docker端口映射是否冲突
重启docker服务后再启动容器
systemctl restart docker
docker start gitlab
八、升级
小版本升级(例如从 8.8.2 升级到 8.8.3), 参照官方的说明, 将原来的容器停止, 然后删除:
docker stop gitlab
docker rm gitlab
然后重新拉一个新版本的镜像下来:
docker pull beginor/gitlab-ce:11.3.0-ce.0
还使用原来的运行命令运行:
docker run \
--detach \
--name gitlab \
--restart unless-stopped \
-p 9922:22 \
-p 9980:9980 \
-v /data/gitlab/etc:/etc/gitlab \
-v /data/gitlab/log:/var/log/gitlab \
-v /data/gitlab/data:/var/opt/gitlab \
beginor/gitlab-ce:11.3.0-ce.0
GitLab 在初次运行的时候会自动升级, 为了预防万一, 还是建议先备份一下 /data/gitlab/ 这个目录。
大版本升级(例如从 8.7.x 升级到 8.8.x)用上面的操作有可能会出现错误, 如果出现错误可以尝试登录到容器内部, 可以用 docker exec , 也可以用 ssh , 依次执行下面的命令:
gitlab-ctl reconfigure
gitlab-ctl restart
九、生成本地 SSH 密钥
需要本地安装 Git 客户端,然后通过 git 的控制台执行:
mkdir ~/.ssh
cd ~/.ssh/
ssh-keygen -t rsa -C "邮箱"
git config --global user.name "姓名"
git config --global user.email "邮箱"

发表评论