1.pull中文版镜像:
docker pull beginor/gitlab-ce
2.创建目录:
通常会将 GitLab 的配置 (etc) 、 日志 (log) 、数据 (data) 放到容器之外, 便于日后升级, 因此请先准备这三个目录。
mkdir -p /usr/local/gitlab/etc
mkdir -p /usr/local/gitlab/log
mkdir -p /usr/local/gitlab/data
3.修改目录权限:
chmod 777 /usr/local/gitlab/etc
chmod 777 /usr/local/gitlab/log
chmod 777 /usr/local/gitlab/data
4.运行:
准备好这三个目录之后, 就可以开始运行 Docker 镜像了。 我的建议是使用unless-stopped
作为重启策略, 因为这样可以手工停止容器, 方便维护。
完整的运行命令如下:
docker run --detach --publish 8443:443 --publish 8080:80 --name gitlab --restart unless-stopped --volume /usr/local/gitlab/etc:/etc/gitlab --volume /usr/local/gitlab/log:/var/log/gitlab --volume /usr/local/gitlab/data:/var/opt/gitlab --privileged=true beginor/gitlab-ce
--publish:将443映射到外部端口8443
--publish 8080:80:将80映射到外部端口8080
--name gitlab 运行容器名
--restart unless-stopped 重启策略
--volume /usr/local/gitlab/etc:/etc/gitlab 挂载目录
--volume /usr/local/gitlab/log:/var/log/gitlab 挂载目录
--volume /usr/local/gitlab/data:/var/opt/gitlab 挂载目录
--privileged=true 使得容器内的root拥有真正的root权限。否则,container内的root只是外部的一个普通用户权限
5.访问:
稍等片刻,初始化完毕,再打开浏览器:ip地址:8080(http://192.168.106.128:8080/)
修改密码为:123456789,修改完成:使用 用户名root,密码为123456789进行登陆。
升级
小版本升级(例如从 8.8.2 升级到 8.8.3), 参照官方的说明, 将原来的容器停止, 然后删除:
docker stop gitlab
docker rm gitlab
然后重新拉一个新版本的镜像下来:
docker pull beginor/gitlab-ce
还使用原来的运行命令运行:
docker run
--detach
--publish 8443:443
--publish 8080:80
--name gitlab
--restart unless-stopped
--volume /mnt/sda1/gitlab/etc:/etc/gitlab
--volume /mnt/sda1/gitlab/log:/var/log/gitlab
--volume /mnt/sda1/gitlab/data:/var/opt/gitlab
beginor/gitlab-ce
大版本升级(例如从 8.7.x 升级到 8.8.x)用上面的操作有可能会出现错误, 如果出现错误可以尝试登录到容器内部, 可以用 docker exec
, 也可以用 ssh , 依次执行下面的命令:
gitlab-ctl reconfigure
gitlab-ctl restart
错误处理:
docker 容器提示没安装vim:
apt-get update
apt-get install vim
停止所有的container:
docker stop $(docker ps -a -q)
删除所有container:
docker rm $(docker ps -a -q)