docker安装gitlab(离线)

2023-11-13

总体思路:找一台可以联网的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,以为是有问题,其实是服务还没有完全起来。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

docker安装gitlab(离线) 的相关文章

随机推荐

  • Objectiv-C学习笔记-XCode模拟命令行填入参数执行

    菜单 Product gt Edit Scheme 左边找到run xxx点击后在右边选择Arguments面板中就可以设置XCode在运行命令行app时模拟输参数 设置完成后再次run就会自动填入设置好的参数了
  • Springboot集成Jedis + Redisson

    以下转载文章经过本人亲测 具有可行性 很好地解决了配置文件分环境部署 以及基本的redissonclient注入问题 转载地址 https my oschina net devonking blog 1421774 本文主要跟大家分享在Sp
  • xlog使用

    对移动开发者来说 最头疼的莫过于线上出现问题 本地无法复现又没有任何日志的场景 但是考虑到应用性能和安全性 无法打印和保存过多的日志 颇有一种书到用时方恨少的感觉 一 xlog介绍 xlog 是腾讯 Mars 终端基础组件中的通用日志模块
  • 003.unity获取输入

    1 键盘输入 获取上下左右方向 h lt 0向左 h gt 0向右 v lt 0向下 v gt 0向上 float h Input GetAxis Horizontal float v Input GetAxis Vertical
  • 如何在MySQL中存储数组(list)?

    解决方法 我在MySQL中有两个表 表Person具有以下列 id name fruits 水果列可以包含空或像 apple orange banana 或 strawberry 等的字符串数组 第二个表是Table Fruit 有以下三列
  • 【915程序设计】22西交大软件专硕915程序设计真题讲解

    27 无人机 include
  • ILRuntime Dotween

    ILRuntime Dotween 1 Unity 主程序导入dotween 2 热跟程序引用dotween dll 在unity 项目中找到dotween dll 文件 我的dotween dll 位置是 E ILRunTime ILRu
  • 中国齿轮行业发展状况与投资规划建议报告2022-2028年

    中国齿轮行业发展状况与投资规划建议报告2022 2028年 详情内容请咨询鸿晟信合研究院 全新修订 2022年2月 撰写单位 鸿晟信合研究研究 报告目录 第1章 齿轮行业发展环境分析 1 1 齿轮行业政策环境分析 1 1 1 齿轮行业相关政
  • js中的数据类型转化

    基本类型的转化 Number null 转换为 0 undefined 转换为 NaN true 转换为 1 false 转换为 0 字符串转换时遵循数字常量规则 转换失败返回NaN String null 转换为 null undefin
  • 深度学习最基础理论知识总结 (CS231课程总结,持续更新)

    因为有在看CS231学习深度学习的简单知识 所以打算整理成blog 持续更新中 一 损失函数loss function 1 SVM 最简单的loss function 其中为真实label对应的分数 为label j对应的分数 Li为每个样
  • C#编程入门基础,开启你的编程之旅

    C 文章有误请指正 如果对你有用 请点赞收藏关注一波 蟹蟹支持 C 简介 C 关键字 C 初次体验 使用 VisualStudio 创建项目 打印 Hello world 1 1 创建项目 1 2 Hello World MSDN 地址 数
  • Openjudge程序设计A_循环结构

    include
  • pytorch训练项目记录时间

    1 首先记录当前时间 import time t0 time time 2 记录结束时间 t1 time time 3 计算时间差 training time t1 t0 4 处理时间格式 import datetime def forma
  • springcloudalibaba项目的搭建

    第一步 搭建父项目 创建一个Maven项目 父项目不写代码 直接删除src 第二步 父项目需要的包 打包方式
  • MSVCP140D.dll没有被指定在Windows上运行,或者它包含错误

    1 xxx dll没有被指定在windows上运行的解决办法 方法一 完全注册系统中的 dll文件 1 开始 运行输入CMD 点击确定或者按下键盘上的回车 Enter 键 打开管理员命令提示符窗口 2 复制 for 1 in windir
  • 此场 X 直火帮 | Set Fire to The Field

    Bzzz说 要有光 就有了光 3D老师给打了光 Bzzz说 要有场 就有了此场atfield 和其他元宇宙分离了出来 Bzzz说 要有趣 就有了元宇宙原生故事和内容 脑洞力才是此场的第一生产力 Bzzz说 要有朋友 就有了坚守创作和初心的梦
  • Python面试题

    Python语言特性 1 Python的函数参数传递 看两个如下例子 分析运行结果 代码一 a 1 def fun a a 2 fun a print a 1 代码二 a def fun a a append 1 fun a print a
  • java蓝桥杯练习 星际交流

    java蓝桥杯练习 星际交流 资源限制 时间限制 1 0s 内存限制 256 0MB 问题描述 人类终于登上了火星的土地并且见到了神秘的火星人 人类和火星人都无法理解对方的语言 但是我们的科学家发明了一种用数字交流的方法 这种交流方法是这样
  • JPA中EntityListeners注解的使用

    使用场景 EntityListeners在jpa中使用 如果你是mybatis是不可以用的 它的意义 对实体属性变化的跟踪 它提供了保存前 保存后 更新前 更新后 删除前 删除后等状态 就像是拦截器一样 你可以在拦截方法里重写你的个性化逻辑
  • docker安装gitlab(离线)

    总体思路 找一台可以联网的linux 下载docker的RPM依赖包而不进行安装 yum localinstall 将所有依赖的rpm环境打包好 再在无网环境中解压逐一安装 rpm force nodeps 同理 docker镜像也通过联网