目录
gitlab
-
它是一个开源的git仓库服务器。用于实现代码集中托管。
-
分为企业版和CE社区版。
-
部署方式:软件包部署、容器部署
部署gitlab容器
# 安装容器管理软件podman
[root@git ~]# yum install -y podman
# 修改192.168.4.20的ssh端口号。因为gitlab容器也要用到22端口,有冲突。
# +17是打开文件时,光标直接定位到第17行。
[root@git ~]# vim +17 /etc/ssh/sshd_config
17 Port 2022
[root@git ~]# systemctl restart sshd
# ssh连接退出,再登陆时,需要指定端口号
[root@zzgrhel8 ~]# ssh -p2022 192.168.4.20
# 导入镜像。一个镜像可以创建很多容器。镜像是只读的,容器是可以改变的。
# 容器相当于是精简的虚拟机,可以像虚拟机一样,对外提供服务。
[root@git ~]# podman load < gitlab_zh.tar
# 查看导入的镜像
[root@git ~]# podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/gitlab_zh latest 1f71f185271a 3 years ago 1.73 GB
# 容器如果出现故障,首先的排错方法是重启它;如果无效,删掉重建。
# 为了删容器,不丢失数据,需要把容器需要的数据保存在宿主机上。在哪台主机上启动容器,哪台主机就是宿主机。
# 在192.168.4.20上创建用于保存容器数据的目录
[root@git ~]# mkdir -p /srv/gitlab/{
config,logs,data}
[root@git ~]# ls /srv/gitlab/
config data logs
# gitlab容器需要/etc/resolv.conf文件。不存在则创建它
[root@git ~]# touch /etc/resolv.conf
# 创建容器
# -d后台运行。-h gitlab设置容器的主机名。--name gitlab是podman ps查看到的容器名;-p指定发布的端口号,当访问宿主机443/80/22端口时,这样的请求就发给容器的相关端口;--restart always是开机自启;-v是映射路径,将容器中指定的路径,映射到宿主机,以便保存容器产生的数据;最后的gitlab_zh是镜像名。
[root@git ~]# podman run -d -h gitlab --name gitlab -p 443:443 -p 80:80 -p 22:22 --restart always -v /srv/gitlab/config:/etc/gitlab -v /srv/gitlab/logs:/var/log/gitlab -v /srv/gitlab/data:/var/opt/gitlab gitlab_zh
# 查看容器
[root@git ~]# podman ps
# 如果一切正常,几分钟后,可以访问http://192.168.4.20/
附:如果容启动失败,再次创建有以下错误:
Error: error creating container storage: the container name "gitlab" is already in use by "ca425e33d7ff2d282cbec1033023851cff285fe9b819ed50d47a08a875372fde". You have to remove that container to be able to reuse that name.: that name is already in use
则:
[root@git ~]# podman rm -f gitlab # 强制删除容器
[root@git ~]# podman run -d -