一、docker 方式安裝 Gitlab
安裝鏡像
docker run --detach \ --name gitlab \ -p 8081:80 \ -p 10022:22 \ --restart always \ -v /backup/gitlab/config:/etc/gitlab \ -v /backup/gitlab/logs:/var/log/gitlab \ -v /backup/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest
參數解釋
--name : 容器的名字
--p xxx:yyy : 端口映射,xxx為宿主機的端口,yyy為容器的端口,即將容器的yyy端口映射到宿主機的xxx端口,訪問宿主機的xxx端口相當於訪問容器的yyy端口
--restart always : 使用always表示docker重啟時容器也會自動重啟
-v 宿主機的路徑:容器內的路徑 : 將容器的文件映射到宿主機上,方便做遷移
二、自定義使用的端口
查看容器的ID
wmg@debian:~$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1132de0d1960 gitlab/gitlab-ce:latest "/assets/wrapper" 19 hours ago Up 2 minutes (healthy) 80/tcp, 443/tcp, 0.0.0.0:8081->8081/tcp, 0.0.0.0:10022->22/tcp gitlab
記住CONTAINER ID
在做操作之前,為了防止意外,先將容器和docker停了
docker stop gitlab // 停止容器,gitlab是容器的名字
systemctl stop docker // 停止docker
我們需要將http的端口改為訪問8081,同時在克隆的時候的地址是對的,gitlab的ssh的端口改為宿主機的10022。
修改宿主機的 /var/lib/docker/containers/容器ID/ 目錄下的config.v2.json,hostconfig.json文件
root@debian:~# cd /var/lib/docker/containers/1132de0d1960e1049a3f1f014b2ba215442a6c7f23f4983b324e055306822c52/ root@debian:/var/lib/docker/containers/1132de0d1960e1049a3f1f014b2ba215442a6c7f23f4983b324e055306822c52# ls 1132de0d1960e1049a3f1f014b2ba215442a6c7f23f4983b324e055306822c52-json.log checkpoints config.v2.json hostconfig.json hostname hosts mounts resolv.conf resolv.conf.hash
config.v2.json
hostconfig.json
Tips:使用vim編輯是如果沒有格式化的話,可讀性會非常差,命令模式下使用 :%!python -m json.tool 格式化json文檔會非常舒服
修改容器內的gitlab配置文件/etc/gitlab/gitlab.rb
因為我將/etc/gitlab映射到了/backup/gitlab/config下了,所以我直接進這個目錄修改gitlab.rb文件,以下幾行參數
external 'http://192.168.88.213:8081' nginx['listen_port'] = 8081 gitlab_rails['gitlab_shell_ssh_port'] = 10022
改好之后將docker和容器啟動就好了
效果如下