使用Docker部署Gitlab及找回管理员密码

安装

本次安装环境在Centos7下进行
Docker版本为Docker version 20.10.8, build 3967b7d

  1. 搜索gitlab最新社区版镜像
docker pull gitlab/gitlab-ce:latest
  1. 运行Gitlab并运行容器
$ docker run -itd  -p 443:443 -p 8443:80 -p 222:22 --name gitlab --restart always -v /home/gitlab/config:/etc/gitlab -v /home/gitlab/logs:/var/log/gitlab -v /home/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce

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

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

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

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

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

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

–restart always 容器自启动

–name gitlab 设置容器名称为gitlab-test

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

重点:
本机的防火墙并未开启,如果防火墙已经开启,请将443,8443,222端口添加防火墙规则中防止无法访问。

  • 进入容器内修改配置文件
docker exec -it gitlab /bin/bash
  • 修改gitlab.rb
vi /etc/gitlab/gitlab.rb
 
# 这个文件是全注释掉了的,所以直接在首行添加如下配置
  
# gitlab访问地址,可以写域名。如果端口不写的话默认为80端口 (图片上拼写错误,正确的是external_url)
external_url 'http://192.168.32.28:8443'
# ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.32.28'
# ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 222
# 开启nginx监听端口
nginx['listen_port'] = 82
  • 刷新配置及启动Gitlab
gitlab-ctl reconfigure
gitlab-ctl restart
  • 退出容器
exit
  • 接下来使用浏览器访问下面页面即可
http://192.168.32.28:8443

如果出现访问失败的问题,大概有以下的问题

  • 进入容器查看gitlab.rb和gitlab.yml文件是否配置成功
  • 查看防火墙是否开放8443、222端口
  • 可使用docker log命令查看容器是否启动完成
    因为容器开启时间并不等于程序开启时间,有时容器已经启动而Gitlab依旧无法访问。此时如果检查配置文件没有问题,那么继续等待即可。

FAQ

正常GitLab启动之后第一次访问直接就可以输入密码进行注册。但是可能是因为我错误太多的缘故,我这边没有这步。那么我们就需要进入容器,找到配置文件,修改管理用户密码了。

  1. 进入刚才已经运行的容器
docker exec -it 7bdb4a6e49bb /bin/bash
  1. 输入命令修改密码
gitlab-rails console -e production
  1. 选择管理员用户
#id为1的是超级管理员
user = User.where(id: 1).first 
  1. 修改密码为指定密码
user.password='l*******s'
  1. 保存,如果没有问题返回为True
user.save!

在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值