1. 获取Gitlab镜像
1.1 查找Gitlab镜像
# 查找Gitlab镜像
$ sudo docker search gitlab-ce
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
gitlab/gitlab-ce GitLab Community Edition docker image based … 3620 [OK]
twang2218/gitlab-ce-zh 汉化的 GitLab 社区版 Docker Image 256 [OK]
beginor/gitlab-ce GitLab Community Edition with zh-cn 71 [OK]
yrzr/gitlab-ce-arm64v8 GitLab Community Edition docker image for ar… 33
gitlab/gitlab-ce-qa GitLab QA has a test suite that allows end-t… 8
drud/gitlab-ce 5
polinux/gitlab-ce GitLab-CE on Steroids (Extra features - see … 3 [OK]
slpcat/gitlab-ce gitlab-ce最新社区版10.1.0,omnibus二进制包 3
marq/gitlab-ce-subgit A GitLab container with SubGit included. 3 [OK]
lizhenliang/gitlab-ce-zh 2
computersciencehouse/gitlab-ce-oidc GitLab CE Docker image with OpenID Connect s… 1 [OK]
projectatomic/gitlab-centos7-atomicapp Gitlab Atomic App 1 [OK]
idoall/gitlab-ce gitlab-ce 1 [OK]
lezapedrola/gitlab-ce 0
oidatiftla/gitlab-ce Mirror of gitlab/gitlab-ce with more tags (m… 0
toshi0123/gitlab-ce gitlab-ce based on alpine linux 0 [OK]
visitsb/gitlab-ce Fixes official https://hub.docker.com/r/gitl… 0
sstruss/gitlab-ce-armhf gitlab-ce armhf image for armv7/armhf platfo… 0
jbuncle/gitlab-ce 0
visualon/gitlab-ce customized gitlab-ce docker image 0
chefplatform/gitlab-ce-kitchen Docker image based on gitlab/gitlab-ce provi… 0
ragboy/gitlab-ce gitlab-ce 8.4.2 0
mjvdende/gitlab-ce gitlab-ce pimped with latest postgresql-clie… 0 [OK]
imachineml/gitlab-ce 0
floydev/gitlab-ce 0
1.2 拉取gitlab镜像
# 拉取Gitlab镜像(通过上面的列表并且后面带OK的,我们选择最好的官方的)
$ docker pull gitlab/gitlab-ce:latest
1.3 查看本机镜像
$ docker images
2. 启动Gitlab容器
# 启动Gitlab容器
$ sudo docker run \
-itd \
-p 9980:80 \
-p 9922:22 \
-v /home/ubuntu/Env/Gitlab/etc:/etc/gitlab \
-v /home/ubuntu/Env/Gitlab/log:/var/log/gitlab \
-v /home/ubuntu/Env/Gitlab/opt:/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 /home/ubuntu/Env/Gitlab/etc:/etc/gitlab | 将容器/etc/gitlab目录挂载到宿主机/home/ubuntu/Env/Gitlab/etc目录下,若宿主机内此目录不存在将会自动创建,其他两个挂载同这个一样 |
–restart always | 容器自启动 |
–privileged=true | 让容器获取宿主机root权限 |
–name gitlab | 设置容器名称为gitlab |
gitlab/gitlab-ce | 镜像的名称,这里也可以写镜像ID |
接下来的配置请在容器内进行修改,不要在挂载到宿主机的文件上进行修改。否则可能出现配置更新不到容器内,或者是不能即时更新到容器内,导致gitlab启动成功,但是无法访问
3. 修改配置
# 进容器内部
$ sudo docker exec -it gitlab /bin/bash
# 修改gitlab.rb
$ vi /etc/gitlab/gitlab.rb
# 加入如下:
# 1.gitlab访问地址,可以写域名。如果端口不写的话默认为80端口
external_url 'http://192.168.137.100'
# 2.ssh主机ip
gitlab_rails['gitlab_ssh_host'] = '192.168.137.100'
# 3. ssh连接端口
gitlab_rails['gitlab_shell_ssh_port'] = 9922
# 让配置生效
$ gitlab-ctl reconfigure
注意不要重启,/etc/gitlab/gitlab.rb文件的配置会映射到gitlab.yml这个文件,由于咱们在docker中运行,在gitlab上生成的http地址应该是http://192.168.137.100:9980,所以,要修改下面文件
4. 修改http和ssh配置
# 在docker中操作,将文件中gitlab的端口(默认80)改为9980(与前面一致)
$ vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
重启gitlab:
$ gitlab-ctl restart
退出docker命令行:
$ exit
现在在浏览器输入地址http://192.168.137.100:9980/
即可访问到web界面:
但是我们还没有可用的用户以及密码。
5. 修改root密码
第一次访问,会让修改root密码,修改后才能够进行登录以root用户登录即可。
# 进入容器内部
$ docker exec -it gitlab /bin/bash
# 进入gitlab控制台
$ gitlab-rails console -e production
# 查询id为1的用户,id为1的用户是超级管理员
$ user = User.where(id:1).first
# 修改密码为:`@W908164f`
$ user.password='@W908164f'
# 保存
$ user.save!
# 退出
$ exit
6. 登录测试
gitlab
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)