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