Docker安装gitlab

1:拉取gitlab镜像

docker pull gitlab/gitlab-ce

生成挂载目录

mkdir -p /usr/local/gitlab/config
mkdir -p /usr/local/gitlab/log
mkdir -p /usr/local/gitlab/data

启动命令

docker run -itd 
 -p 443:443 -p 80:80 -p 222:22
--name gitlab --restart always --privileged=true  
-v /usr/local/gitlab/config:/etc/gitlab    
-v /usr/local/gitlab/log:/var/log/gitlab   
-v /usr/local/gitlab/data:/var/opt/gitlab   
 gitlab/gitlab-ce

- 运行Gitlab容器

命令解释:

-i :以交互模式运行容器,通常与 -t 同时使用命令解释

-t :为容器重新分配一个伪输入终端,通常与 -i 同时使用

-d :后台运行容器,并返回容器ID

-p:80:80 将容器内80端口映射至宿主机80端口,这是访问gitlab的端口

-p:222:22 将容器内22端口映射至宿主机222端口,这是访问ssh的端口

-v /usr/local/gitlab/config:/etc/gitlab 将容器/etc/gitlab目录挂载到宿主机/usr/local/gitlab/etc目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样

–restart always :容器自启动

–privileged=true :让容器获取宿主机root权限

–name gitlab :设置容器名称为gitlab

gitlab/gitlab-ce :镜像的名称,这里也可以写镜像ID

docker run -v挂载目录时,若本地没有该目录挂载时会自动创建。

查看
#ls /home/

# ls /home/gitlab/

# docker ps

调整gitlab配置
# 通过打开映射出来的配置文件(windows右击打开编辑)

vim /usr/local/gitlab/config/gitlab.rb

# 配置http协议所使用的访问地址,不加端口号默认为80(这里需要改成8001,因为外面的HTTP 克隆地址会根据这里生成 ,gitlab的页面访问端口也会改变)

external_url 'http://127.0.0.1:80'

# 配置ssh协议所使用的访问地址和端口(这里需要改成222,因为外面的SSH 克隆地址会根据这里生成 )

gitlab_rails['gitlab_ssh_host'] = '127.0.0.1'
gitlab_rails['gitlab_shell_ssh_port'] = 222 # 此端口是run时22端口映射的222端口

# 重启gitlab容器

docker restart gitlab

root密码修改
# 进入容器内部

docker exec -it gitlab /bin/bash

# 进入控制台

gitlab-rails console -e production

# 查询id为1的用户,id为1的用户是超级管理员

user = User.where(id:1).first

# 修改密码为root123456(密码需要超过八位别单独出现某种字符)

user.password='root123456'

# 保存

user.save!

# 退出

exit