45f229198c7d: Pull complete
Digest: sha256:e5d73a0ebc3d80fec2130993c550b9b178ae7c7971c255509e8c9feee4c0bd6b
Status: Downloaded newer image for beginor/gitlab-ce:latest
docker.io/beginor/gitlab-ce:latest
[root@ccx ~]#
- 导入镜像到客户机
[root@ciserver ~]# docker load -i gitlab-ce.tar
c8aa3ff3c3d3: Loading layer 117MB/117MB
82718dbf791d: Loading layer 15.87kB/15.87kB
3a0404adc8bd: Loading layer 14.85kB/14.85kB
cd7b4cc1c2dd: Loading layer 5.632kB/5.632kB
bf3d982208f5: Loading layer 3.072kB/3.072kB
3cb57942e900: Loading layer 75.85MB/75.85MB
fec139a70fd9: Loading layer 2.048kB/2.048kB
fcfdc7d11c7b: Loading layer 2.048kB/2.048kB
634a9b449438: Loading layer 2.048kB/2.048kB
aa3fb55f308c: Loading layer 15.87kB/15.87kB
bd9f0bd5757b: Loading layer 1.375GB/1.375GB
5cef898093ce: Loading layer 2.473MB/2.473MB
Loaded image: beginor/gitlab-ce:latest
[root@ciserver ~]# docker images | grep gitlab
beginor/gitlab-ce latest 5595d4ff803e 3 years ago 1.5GB
[root@ciserver ~]#
- 部署bit容器
代码都是基本知识的代码,就不做解释了。
[root@ciserver ~]# mkdir -p /data/gitlab/etc /data/gitlab/log /data/gitlab/data
[root@ciserver ~]# chmod 777 /data/gitlab/etc /data/gitlab/log /data/gitlab/data
[root@ciserver ~]#
[root@ciserver ~]# docker run -dit --name=gitlab --restart=always -p 8443:443 -p 80:80 -p 222:22 -v /data/gitlab/etc:/etc/gitlab -v /data/gitlab/log:/var/log/gitlab -v /data/gitlab/data:/var/opt/gitlab --privileged=true beginor/gitlab-ce
9c498bea946e8ef18c7ac96692cf9f0403afe4714c2cf3f47109868d8cf14c8c
[root@ciserver ~]#
可以看到gitlab和registry的状态都是up的
[root@ciserver ~]# docker ps | head -n3
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9c498bea946e beginor/gitlab-ce “/assets/wrapper” About a minute ago Up About a minute (health: starting) 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:222->22/tcp, :::222->22/tcp, 0.0.0.0:8443->443/tcp, :::8443->443/tcp gitlab
98fbe2c0b3a2 hub.c.163.com/library/registry “/entrypoint.sh /etc…” 17 hours ago Up 17 hours 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry
[root@ciserver ~]#
- 在创建此容器时,因为使用了数据卷,所以gitlab容器的配置也都保存在服务器的相关目录上了。
因为我们需要修改gitlab的配置并让其生效,所以大概等上面的gitlab运行2分钟之后,先关闭此容器,做相关操作再开启
[root@ciserver ~]# ls /data/gitlab/
data/ etc/ log/
[root@ciserver ~]# ls /data/gitlab/data/
backups gitlab-monitor nginx public_attributes.json
bootstrapped gitlab-rails node-exporter redis
gitaly gitlab-shell postgres-exporter trusted-certs-directory-hash
git-data gitlab-workhorse postgresql
gitlab-ci logrotate prometheus
[root@ciserver ~]# ls /data/gitlab/etc/
gitlab.rb ssh_host_ecdsa_key.pub ssh_host_rsa_key
gitlab-secrets.json ssh_host_ed25519_key ssh_host_rsa_key.pub
ssh_host_ecdsa_key ssh_host_ed25519_key.pub trusted-certs
[root@ciserver ~]# ls /data/gitlab/log/
gitaly gitlab-shell nginx postgresql redis sshd
gitlab-monitor gitlab-workhorse node-exporter prometheus redis-exporter unicorn
gitlab-rails logrotate postgres-exporter reconfigure sidekiq
[root@ciserver ~]#
先停止服务
[root@ciserver ~]# docker stop gitlab
gitlab
[root@ciserver ~]#
- 修改
vim /data/gitlab/etc/gitlab.rb
如下内容
[root@ciserver ~]# vim /data/gitlab/etc/gitlab.rb
#下面是修改后的最终效果
13 external_url ‘http://192.168.59.151’ #改成自己的ip
48 gitlab_rails[‘gitlab_ssh_host’] = ‘192.168.59.151’#改成自己的ip
343 gitlab_rails[‘gitlab_shell_ssh_port’] = 222 #这是物理机端口,上面我们定义的是222
#上面3样修改完以后保存退出
- 修改
vim /data/gitlab/data/gitlab-rails/etc/gitlab.yml
如下内容
[root@ciserver ~]# vim /data/gitlab/data/gitlab-rails/etc/gitlab.yml
#下面是修改后的最终效果
13 host: 192.168.59.151 #改成自己ip
#然后保存退出
- 启动gitlab服务
状态为up才正常
[root@ciserver ~]# docker start gitlab
gitlab
[root@ciserver ~]#
[root@ciserver ~]# docker ps | head -n3
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9c498bea946e beginor/gitlab-ce “/assets/wrapper” 17 minutes ago Up 20 seconds (health: starting) 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:222->22/tcp, :::222->22/tcp, 0.0.0.0:8443->443/tcp, :::8443->443/tcp gitlab
98fbe2c0b3a2 hub.c.163.com/library/registry “/entrypoint.sh /etc…” 17 hours ago Up 17 hours 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp registry
[root@ciserver ~]#
设置gitlab的root密码并登陆
- 打开gitlab设置root密码
在浏览器直接输入该虚机的ip
即可进入gitlab
我设置的root密码是ccxhero!
【注意,密码简单的话会报界面500错误】
密码设置好以后呢,就成登陆界面了
- 登陆
用上面设置的密码,用户名是root,登陆
创建一个项目并设置ssh秘钥
- 点击创建一个新项目
随便输入一个名称,选择公开,然后创建
- 上面呢一个基本项目就算创建完成了,可以通过ssh的方式拉取镜像,所以我们现在给这个镜像仓库设置秘钥
先到虚拟机上生成秘钥【就是免密登陆的那种秘钥】
#中途直接回车一次即可
[root@ciserver ~]# ssh-keygen -N “”
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:LAwIpATm3/uyXaarAp6DCwRWF4hTo1PeWmO678lAEzs root@ciserver
The key’s randomart image is:
±–[RSA 2048]----+
|=+o=.o. |
|=+=o+ |
|o=oo.= |
|o o Oo… |
| . E .o S |
|… + … |
|+ oo . o |
|o+ .+.+ + |
|… oB+=. |
±—[SHA256]-----+
[root@ciserver ~]# ls .ssh/
id_rsa id_rsa.pub known_hosts
我们要的是这个文件下的公钥信息,复制,后面要用
[root@ciserver ~]# cat .ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQz8lAkNH/VfnbgUGG1mDQ61pjuitvZ1QGzk75uHN1ib0bNrHyqjZDlRfQa+ssfr3DrUyoX3JmyH36hw56c5ulrZmlIplvqXWz5ZYHw+gYy0btBTLqfTytCJPh6AC8KDL0OIMqubf1H1GTSuhCIn86/91u2FSjdFq6mrryfEIV6IAf5FwTzDJhhvcpeLpPM4QzDf/yarnk2fs79eKSP9QIC4UnyLTW9FxKMKCrruNczLn22od0oKQzZMzeitKunRKaYtv8w8kafKE+LeXvGun/l0aVyb2EawaYQNmw3VkYlToy9NwUCySYS25NCxTonZR84ChyBfX2Jh8u/R+LyBE9 root@ciserver
[root@ciserver ~]#
- 现在回到网页上,