docker安装gitlab(离线)

  • Post author:
  • Post category:其他


总体思路:找一台可以联网的linux,下载docker的RPM依赖包而不进行安装(yum localinstall),将所有依赖的rpm环境打包好,再在无网环境中解压逐一安装(rpm: –force –nodeps)。

同理,docker镜像也通过联网下载,docker save导出tar包,然后离线机器docker load导入镜像

系统版本:

准备两台Linux系统,一台是可以联网的另外一台就是你的内网服务器

先在可以联网的linux上,进行docker的下载和安装,因为后面内网端可能docker的各种镜像,所以在联网的这台也进行docker的安装

docker安装(yum install)

如果之前安装过旧版本的Docker,可以使用下面命令卸载:

yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-selinux \
                  docker-engine-selinux \
                  docker-engine \
                  docker-ce

首先需要大家虚拟机联网,安装yum工具

yum install -y yum-utils \
           device-mapper-persistent-data \
           lvm2 --skip-broken

然后更新本地镜像源:

# 设置docker镜像源,逐条执行
yum-config-manager \
    --add-repo \
    https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

yum makecache fast

然后输入命令:

yum install -y docker-ce

docker-ce为社区免费版本。稍等片刻,docker即可安装成功。

docker离线安装

在可以联网的这台linux,下载所有依赖到指定目录:

mkdir -p  /home/dockerrpm/

yum intsall docker-ce --downloadonly --downloaddir=/home/dockerrpm/

解释:标准的yum命令提供了 –downloadonly(只下载,不安装) 的选项来达到这个目的。


将所有依赖的rpm环境打包:

tar zcvf docker-ce-20.tar.gz ./dockerrpm/*

将压缩包传到内网端  比如也是 /home/dockerrpm,解压压缩

tar zxvf docker-ce-20.tar.gz

在dockerrpm目录下,执行命令安装依赖

rpm -ivh *.rpm --force --nodeps

参数解释:

rpm -ivh *.rpm –force –nodeps

1.–nodeps 就是安装时不检查依赖关系,比如你这个rpm需要A,但是你没装A,这样你的包就装不上,用了–nodeps你就能装上了。

2.–force 就是强制安装,比如你装过这个rpm的版本1,如果你想装这个rpm的版本2,就需要用–force强制安装。


到这里docker算是安装完成了,接下来启动docker

Docker应用需要用到各种端口,逐一去修改防火墙设置。我这里为了方便直接关掉防火墙了

# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld

通过命令启动docker:

systemctl start docker  # 启动docker服务

systemctl stop docker  # 停止docker服务

systemctl restart docker  # 重启docker服务

查看docker状态:

systemctl status docker # 查看docker启动状态

docker -v               # 查看docker版本

ok,docker启动成功

docker安装gitlab

在可以联网的linux上下载gitlab镜像,

# gitlab-ce为稳定版本,后面不填写版本则默认pull最新latest版本

docker pull gitlab/gitlab-ce

查看镜像,

docker images

保存镜像

docker save -o gitlab.tar gitlab/gitlab-ce

执行完命令,你会在当前目录获得一个gitlab.tar包

把这个压缩包考到离线的linux机器上,比如放在  /home/dockerrpm/images

执行命令,导入镜像

docker load -i gitlab.tar

查看镜像

docker images

导入成功

docker启动容器

我这里是自定义了gitlab端口为30000,默认端口80,-p参数代表端口映射

docker run -d \
-p 30000:30000 -p 30001:443  -p 30002:22 \
--name gitlab \
--restart unless-stopped \
-v /home/gitlab/config:/etc/gitlab \
-v /home/gitlab/logs:/var/log/gitlab \
-v /home/gitlab/data:/var/opt/gitlab \
-v /etc/localtime:/etc/localtime \
gitlab/gitlab-ce

启动之后,需要修改配置

cd /home/gitlab/config

修改gitlab.rb文件,就是里面全是注释的文件,这个文件在你挂载的config目录,我上面挂载的是/home/gitlab/config

vi /home/gitlab/config/gitlab.rb

修改几个地方

# 以下修改的内容,该配置文件都有,可以ctrl+f搜搜

# 这里修改的是你gitlab的登录地址,因为我不想用默认的80端口,所以我就自定义了30000端口,只要不是被占用的端口都可

external_url 'http://192.168.247.130:30000'

# ssh主机端口

gitlab_rails['gitlab_ssh_host'] = 'http://192.168.247.130:30000'

gitlab_rails['gitlab_shell_ssh_port'] = 30002

# 注意,如果用的默认80端口,则不需要修改,我这里用了30000端口,所以监听端口需要修改

nginx['listen_port'] = 30000

修改完后,重启gitlab

docker restart gitlab

访问

http://192.168.247.130:30000

,这里启动Gitlab需要几分钟,耐心等待,我之前部署完一直是502,以为是有问题,其实是服务还没有完全起来。



版权声明:本文为HelloJavaaaa原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。