1、创建Gitlab映射文件目录
# 数据目录
/data/docker/gitlab/data
# 配置目录
/data/docker/gitlab/etc
# 日志目录
/data/docker/gitlab/log
2、Docker拉取Gitlab镜像
docker pull gitlab/gitlab-ce:latest
3、启动
docker run -id -p 9980:80 -p 9922:22 -v /data/docker/gitlab/etc:/etc/gitlab -v /data/docker/gitlab/log:/var/log/gitlab -v /data/docker/gitlab/data:/var/opt/gitlab --restart always --privileged=true --name gitlab gitlab/gitlab-ce
------------------------------------
-i 以交互模式运行容器,通常与 -t 同时使用命令解释
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-d 后台运行容器,并返回容器ID
-p 9980:80 将容器内80端口映射至宿主机9980端口,这是访问gitlab的端口
-p 9922:22 将容器内22端口映射至宿主机9922端口,这是访问ssh的端口
-v xxxxx:xxx 将容器/etc/gitlab目录挂载到宿主机/data/docker/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样
--restart always 容器自启动
--privileged=true 让容器获取宿主机root权限
--name gitlab 设置容器名称为gitlab
gitlab/gitlab-ce 镜像的名称,这里也可以写镜像ID
4、容器修改配置
4.1 进入容器
docker exec -it gitlab /bin/bash
4.2 修改gitlab.rb
vi /etc/gitlab/gitlab.rb
4.3 加入配置
# gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://宿主机IP'
# ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '宿主机IP'
# ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
4.4 重启配置
gitlab-ctl reconfigure
4.5 修改yml文件
修改http和ssh配置
vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
修改如下:
gitlab:
host: 宿主机IP
port: 9980# 这里改为9980
https: false
4.6 重启
# 重启
gitlab-ctl restart
4.7 退出容器
exit
5、验证登录
http://宿主机IP:9980/users/sign_in