Harbor-私有docker仓库离线安装配置

2023-10-27

 因为工作需要,有时候是需要完全断网环境,此时需要在内网环境中离线安装Harbor私有仓库。

1、系统环境描述

主机:X86_64架构,8G内存 (期待啥时候等有机会找一台国产化机器安装一个其他架构的版本)

操作系统:CentOS 7.9-2009 最小化安装

作为私有仓库,建议硬盘尽量大一些,我使用的200GB,可以推荐使用1TB以上。

2、准备工作

     找一台能上网的机器(需要能运行docker),下载下面三类文件

  • docker-ce的离线安装包

      到 https://download.docker.com/linux/地址查找符合自己主机系统和架构的docker-ce安装包版本,下载对应目录下新版的docker安装文件。

      本例中下载版本为linux/centos/7/x86_64/stable/Packages/目录下20.10.17-3版本,需要下载五个文件,文件名为

       containerd.io-1.4.9-3.1.el7.x86_64.rpm

       docker-ce-20.10.17-3-el7.x86_64.rpm

       docker-ce-cli-20.10.17-3-el7.x86_64.rpm

       docker-scan-plugin-0.8.0-3.el7.x86_64.rpm

       docker-ce-rootless-extras-20.10.7-3.el7.x86_64.rpm

  • Docker-compose的离线安装包

       到https://github.com/docker/compose/releases/ 地址查找最新的docker-compose版本

下载最新版的docker-compose文件,下载后将docker-compose-linux-x86_64重命名为docker-compose(后续上传到linux机器后还得赋予执行权限)

       本文写作时版本为2.6.1

  • harbor的离线安装包

      到 https://github.com/goharbor/harbor/releases地址查找最新的harbor离线包版本

下载最新版的harbor文件,推荐使用2.x版本

本文写作时版本为2.5.2,文件名为harbor-offline-installer-v2.5.2.tgz 文件大小629MB

  • harbor需要的prepare镜像包     

docker pull goharbor/prepare:v2.4.1
docker save -o goharbor_prepare_v2.4.1.tar goharbor/prepare:v2.4.1

将上述文件上传到准备安装harbar所在的linux服务器上,假设上传目录为/var/local

3、harbor安装

    以下操作在准备安装harbor的linux服务器上进行

    使用Xshell连接到harbor主机上(本人比较懒,直接使用的root账户,这样很多操作比较方便,不必每次都输密码,如果是使用非root账户,或者ubuntu服务这种,需要在命令前加sudo)

安装docker及dock-compose

cd /var/local
mv docker-compose-linux-x86_64-2.6.2 docker-compose
chmod 777 docker-compose
mv docker-compose /usr/bin
yum install *.rpm  #安装docker运行环境
systemctl start docker

安装harbor

cd /var/local
​tar -zxvf harbor-offline-installer-v2.5.2.tgz -C /usr/local/
cd /usr/local/
cd harbor
cp harbor.yml.tmpl harbor.yml
vi harbor.yml #编辑harbor配置文件进行安装
修改harbor.yml harbor作为私有仓库作用在公司内网,一般都是信任关系,没多大必要做https,使用http即可! 所以 把https相关的已经注释掉(实话是,配置https实在有点麻烦)

    在公司内部使用,如果用了公司的dns,哪就可以采用域名作为hostname,如果是其他ip,请自行更换,注意以下红框标注部分,并注意配置文件的用户名密码配置,默认是 用户名是:admin,密码是:Harbor12345,如果修改需要安装前修改

执行安装命令 先执行预处理命令,会创建一些文件夹,初始化一些文件

./prepare

将goharbor_prepare_v2.4.1.tar执行装载

docker load -i goharbor_prepare_v2.4.1.tar 

然后开始真正的安装过程

./install.sh

因为镜像已经在相关目录中,所以不需要下载。等待一会后,看到如下画面表示安装成功

 编译一个harbor启动服务文件,可将harbor作为服务启动,便于今后使用

vi /lib/systemd/system/harbor.service

文件内容如下:

[Unit]

Description=Harbor

After=docker.service systemd-networkd.service systemd-resolved.service Requires=docker.service

Documentation=http://github.com/vmware/harbor ​

[Service]

Type=simple

Restart=on-failure

RestartSec=5

ExecStart=/usr/bin/docker-compose -f /usr/local/harbor/docker-compose.yml up ExecStop=/usr/bin/docker-compose -f /usr/local/harbor/docker-compose.yml down ​

[Install]

WantedBy=multi-user.target

docker客户端访问

vi /etc/docker/daemon.json

把harbor地址配置到docker中,具体ip或域名可以换成你自己的ip或者域名

{
  "registry-mirrors": [
     "http://192.188.120.166"
  ],
  "insecure-registries":
        ["127.0.0.1","192.188.120.166"],
  "graph":"/var/docker/lib"
}

修改了daemon.json文件后需要重载配置并重启docker服务和harbor服务,并登陆私有仓库

systemctl daemon-reload
systemctl restart docker
systemctl status docker
#到harbor安装目录下
docker-compose down
docker-compose up -d
docker login 192.188.120.166  # 私有仓库的ip或域名

帐号密码是私有仓库的用户名和密码

docker客户端访问

docker客户端是指所有需要访问harbor私有仓库的客户端,包括harbor服务器自己。

vi /etc/docker/daemon.json

把harbor地址配置到docker中,具体红色标注的ip或域名可以换成你自己的ip或者域名

{
  "registry-mirrors": [
     "http://192.168.120.166"
  ],
  "insecure-registries":
        ["127.0.0.1","192.168.120.166"],
  "graph":"/var/docker/lib"
}

修改了daemon.json文件后需要重载配置并重启docker服务和harbor服务,并登陆私有仓库

注意:如果重启了docker服务,最好同时再重新启动一下harbor服务,不然可能出现问题。

systemctl daemon-reload
systemctl restart docker
docker login 192.168.120.166  # 私有仓库的ip或域名
帐号密码是私有仓库的用户名和密码,管理员使用的是安装阶段在harbor.yml中设定的密码

 2022年8月3日添加

今天使用maven生成docker镜像推送到私有库时出现拒绝访问的问题,郁闷,刚开始实际应用就出现问题。

研究后改正如下(如果maven所在服务器上安装了docker,直接在maven服务器运行docker login命令登录即可,此处针对没安装docker环境服务器)

关于maven库直接推送docker需要修改的地方

vi /lib/systemd/system/docker.service

文件修改ExecStart下增加

-H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

 开放2375端口

firewall-cmd --zone=public --add-port=2375/tcp --permanent
firewall-cmd --reload

修改了daemon.json文件后需要重载配置并重启docker服务和harbor服务,并登陆私有仓库

systemctl daemon-reload
systemctl restart docker
systemctl status docker
#到harbor安装目录下
docker-compose down
docker-compose up -d
docker login 192.168.120.166  # 私有仓库的ip或域名

测试后,maven可推送docker镜像了,当然需要在maven的pom.xml文件里进行配合(不在本文范围内)。

使用命令行方式进行镜像推拉

docker tag SOURCE_IMAGES[:TAG]  192.168.120.166/library/IMAGE[:TAG]
docker push 192.168.120.166/library/IMAGE[:TAGE]

推到仓库/从仓库中拉取

最后设置成开机自启动

systemctl start harbor
systemctl enable harbor
注意,客户机也需要修改docker配置文件,使docker支持harbor ,方法同上

客户机使用私有仓库前需要登录私有仓库

docker login 192.168.120.166  # 私有仓库的ip或域名

帐号密码是私有仓库的用户名和密码,这个可以由管理员在Web界面中添加。

4、harbor使用

  • 访问harbor和登录

(根据在harbor.yml文件中配置的端口与IP地址(或域名)进行访问)

harbor-login

用其他客户端或者服务器从搭建的私有Harbor上拉镜像,同样的,也要在相应的/etc/docker/daemon.json配置

在这里插入图片描述

如果需要使用完全离线版的私有仓库,需要提前在能联网的机器按照下面步骤将镜像推送到私有库服务器并对其他内网机器提供服务

需要找一台能连接互联网的机器,下载好需要的xx包并上传到本服务器上

docker pull AAA/xxx:vx.x  #下载需要的镜像包
docker save -o AAA_xxx.vx.x.tar AAA/xxx:vx.x #将镜像包打包

将上面的AAA_xxx.tar文件保存后上传到需要安装的私有服务器上,并执行装载,修改tag并push到私有服务器

docker load -i AAA/xxx:vx.x   #装载镜像包
docker tag AAA/xxx:vx.x 192.168.120.166/AAA/xxx:vx.x   #修改tag,注意ip和目录
docker push 192.168.120.166/AAA/xxxx:vx.x  #推送,注意,如果不想修改路径,那么在推送前,在harbor上创建AAA项目,否则会推送失败

例如:上面的goharbor/prepare:v2.4.1,就需要创建一个goharbor项目

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

Harbor-私有docker仓库离线安装配置 的相关文章

  • 证件照制作免费软件有哪些推荐?这几款小白也能轻松驾驭

    今天收到闺蜜急冲冲打来的电话 说让我帮忙找一家靠谱的照相馆 仔细一问 原来是她有个考试报名的照片不符合要求 需要重新拍摄 但是明天就要截止报名了 她害怕赶不上趟 所以才火急火燎地电话 轰炸 我 其实 遇到照片不符合要求的情况 不一定只有重新
  • 视频转文字软件怎么用?教你轻松搞定

    你是否遇到过需要将视频中的对话或讲解内容转换为文字的情况 比如 想要回顾一段重要的讲座 但是视频的质量不佳 或者想要将一段家庭视频中的对话记录下来 日后可以回忆 这时候 一款好的视频转文字软件就能派上大用场 今天 我们就来介绍几款视频转文字
  • 38条Web测试经验分享

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 9k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 康奈尔笔记法:高效学习的秘密武器

    在求知的道路上 我们常常会遇到这样的情况 上课时明明听得很认真 但课后却发现自己对知识的掌握并不牢固 阅读书籍时 尽管我们做了很多笔记 但最后却发现自己并没有真正理解 这就是因为没有找到有效的学习方法 而康奈尔笔记法 就是一种能够帮助我们高
  • 短视频时代:文案的力量与价值

    在当今这个信息时代 短视频以其独特的魅力和巨大的传播力 已经深深地渗透到我们的生活中 无论是抖音 快手 还是其他短视频平台 它们都在以自己独特的方式塑造着我们的娱乐生活 而在这些短片的背后 有一个重要的元素在发挥着关键的作用 那就是文案 文
  • 内网穿透工具frp安装使用

    摘要 之前使用的 nps 目前没有维护更新了 和在使用的过程中做内网穿透的的网速应该有限制 不论云服务器带宽是多少 下载速度都比较慢 这里切换到 frp 试试 对安装和使用简单记录 其和 nps 有很大的操作配置不同之处 相关文章 内网穿透
  • 内网穿透工具frp安装使用

    摘要 之前使用的 nps 目前没有维护更新了 和在使用的过程中做内网穿透的的网速应该有限制 不论云服务器带宽是多少 下载速度都比较慢 这里切换到 frp 试试 对安装和使用简单记录 其和 nps 有很大的操作配置不同之处 相关文章 内网穿透
  • IPFS技术:构建可持久安全的全球文件系统

    IPFS InterPlanetary File System 是一种点对点的分布式文件系统 旨在建立一个可持久且安全的全球文件系统 它采用了一种创新的数据组织方式 将文件以Merkle有向无环图 DAG 的形式存储和分发 实现了去中心化的
  • 拍照转文字的软件哪个好?这篇文分分钟告诉你答案

    上了大学之后 大家是不是就很少在上课的时候拿笔记记课堂笔记啦 也是 大学课堂上并不禁止我们使用手机 我们只需要在遇到需要记下的知识点时 掏出手机拍几张照片就好了 这样虽然解放了双手 但我们到了期末想要复习知识点的时候 图片形式的内容总是不太
  • 研发实验室装修

    研发实验室在企业 高校和研究机构中的地位日益凸显 一个优质的研发实验室装修方案不仅能提升实验室的整体形象 还能提高科研人员的工作效率 激发创新精神 本文将从设计理念 空间规划 材料选择及环保安全等方面 SICOLAB喜格 探讨如何打造高效创
  • 职场生存能力最强的5类人:如何成为职场中的佼佼者?

    职场生存能力最强的5类人 如何成为职场中的佼佼者 在职场中 生存能力强的人往往更容易获得成功 他们具备各种能力和特质 使他们能够在激烈的竞争中脱颖而出 本文将介绍职场生存能力最强的5类人 看看你是否具备这些特点 一 适应能力强的人 在职场中
  • 在线智能抠图软件有哪些?证件照背景颜色更换不求人

    2024年上半年全国计算机等级考试 NCRE 报名开始啦 不出意外 这次报名仍然是需要提交证件照 具体要求如下 本人近期正面免冠 白色背景 彩色证件照 不得使用生活照 美颜照 最小像素高宽为192x144 最小成像区高宽为48mmx33mm
  • 职场人最忌讳的10件事:从人性的角度揭示职场中的禁忌行为

    职场人最忌讳的10件事 从人性的角度揭示职场中的禁忌行为 在职场中 每个人都有自己的行为准则和价值观 然而 有些事情却是普遍被认为不可取的 从人性的角度来看 这些事情可能会触碰到人们的某些心理或道德底线 导致他人产生反感或不信任 本文将探讨
  • Linux中的磁盘空间管理:df命令的详解与应用

    在Linux操作系统中 磁盘空间的管理是系统管理员和普通用户都需要面对的重要任务 为了帮助用户更好地理解和管理磁盘空间 Linux提供了一系列工具 其中最常用 最直观的莫过于df命令 df命令 全名为 disk free 它是一个用于显示磁
  • SAN与NAS:存储架构的对比与选择

    在当今的数据密集型时代 存储架构的选择对于企业的成功至关重要 SAN Storage Area Network 和NAS Network Attached Storage 作为两种主流的存储架构 各自拥有独特的优势和应用场景 本文将深入探讨
  • 考HCIE要多久 | HCIE学员经验分享

    大家好 我是讯方 智汇云校的学员林同学 来自深圳信息职业技术学院的一名22届的通信专业的学生 通过近半年在云校的学习 我在年底成功考取了云服务方向的HCIE证书 想把我的一些考证心得分享给正在备考的小伙伴们 刚开始了解到ICT行业是在学校的
  • 电脑操作系统的发展史:从初级到高级的演变

    自电脑诞生以来 操作系统作为其重要组成部分 不断推动着电脑技术的进步与发展 本文将带您回顾电脑操作系统的发展历程 探究其在不同阶段的特点与影响 一 早期操作系统 真空管与批处理 在电脑诞生初期 真空管技术占主导地位 此时的操作系统尚未形成完
  • 短视频时代:影响播放量的秘密与破解之道

    在当下这个信息爆炸的时代 短视频已经成为我们日常生活的一部分 无论是刷朋友圈 看新闻还是消磨时光 短视频都是我们的首选 正因为如此 许多自媒体人和内容创作者纷纷投身到这片热土 希望通过短视频实现自己的价值 然而 许多人在创作过程中都会遇到一
  • 新画图不好用?『 图层困扰?』『 剪切板拷贝失败?』旧版画图软件yyds

    樊梓慕 个人主页 个人专栏 C语言
  • 如何正确使用RC滤波网络

    众所周知 最有效的滤波电路应靠近噪声源放置 滤波的作用是对噪声电流进行及时有效地阻止和转移 实际设计中 工程师经常使用高的串联阻抗 电阻 电感和铁氧体 阻止电流 并使用低的并联阻抗 电容 转移电流 通常情况下 我们期望滤波器可以对噪声信号衰

随机推荐

  • 【Python项目】简易的密码本

    import json 名称文件 名称 json 账号文件 账号 json 密码文件 密码 json 名称 账号 密码 序列号 0 更新数据 with open 账号文件 as f 账号 json load f with open 名称文件
  • js代替eval的办法

    在滚滚的boring写代码的潮流中 eval 方法逐渐被淘汰 那我们可以用什么方法代替它呢 binggo 以下方法使用效果超出你的想象 function evalPro str var Fn Function return new Fn r
  • layui框架学习(5:面板)

    Layui中的菜单样式与面板结合比较紧密 在学习菜单之前 先熟悉Layui的面板样式 Layui的面板主要作为容器使用 其样式主要分为常规面板 卡片面板 折叠面板 含手风琴效果 Layui官网示例中还介绍了面板嵌套 本文后续一一介绍并验证
  • 图像描述算法排位赛:SceneXplain与MiniGPT-4谁将夺得桂冠?

    如果你对 AI 前沿感兴趣 本场 图像描述算法排位赛 绝对是你不能错过的 在这场较量中 SceneXplain 和 MiniGPT 4 将会比试 谁将摘得这场比赛的桂冠 直接上手体验 scenex jina ai 背景介绍 在 一张图就是一
  • php curl集成包的安装和实用

    下载curl集成包 https github com php mod curl 放在vendor目录下 加载curl包 实例化 vendor Curl src Curl Curl php pinJ new Curl 然后按照官网demo使用
  • 图像配准的方法

    转自 http blog sina com cn s blog 4b9b714a0100d5k5 html 图像配准的方法 1 基于特征的图像配准 基于特征的图像配准首先提取图像信息的特征 然后以这些特征为模型进行配准 特征提取的结果是一含
  • QT的ui文件中控件在cpp的调用

    点击然后右键 然后点击改变对象名称 改成如上图所示 即可在cpp函数中调用 进行操作
  • cdn搭建原理_什么叫cdn服务器?怎么部署?

    在现今的网络系统时期 各类互连网手机app异军突起 而互联网出現浏览卡屏或延时的状况也越来越非常广泛 以便处理不一样的互联网情况 人们常常会构建到不一样的虚拟主机来浏览互联网 cdn服务器也是列举这种 什么叫cdn服务器 cdn服务器英语全
  • CentOS7.x安装VNC实录

    不知不觉 centos已经到7 6了 在服务器操作系统中 centos是用的比较多的 占很大的比例 由于7 x版本和6 x版本有区别 最近安装了7 6的VNC 特记之 VNC需要系统安装的有桌面 如果是生产环境服务器 安装时使用的最小化安装
  • 学妹问我:OpenJDK是什么?作为师哥,必须万字详解屁颠屁颠奉上

    上一篇是分享的是 JVM虚拟机 了解Java堆中对象分配 布局和访问的全过程 这篇给大家分享 OpenJDK 1 OpenJDK 概述 OpenJDK 是 Java 平台标准版 Java SE 的免费开源实现 这是 Sun Microsys
  • python爬虫安装Xpath插件时遇到的问题

    在安装Xpath时 出现拖拉压缩包 记住一定是压缩包 下载后的插件是 crx后缀的文件 需要改变为压缩包的形式 后 在添加文件时 一直找不到压缩包 最后发现是压缩包后缀的问题 如图 是我的winr 压缩包软件 自动生成的压缩包 默认是rar
  • 数据聚合与分组运算

    标注 我用的是jupyterNotebook 一 分组与聚合的原理 在Pandas中 分组是指使用特定的条件将原数据划分为多个组 聚合在这里指的是 对每个分组中的数据执行某些操作 最后将计算的结果进行整合 分组与聚合的过程大概分为以下三步
  • nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet

    问题描述 这个报错指的是结果无法映射 只需要把java实体与数据库表关系映射好就ok 一定要看清自己的配置文件 自己的数据库 处理思路整理 避免走弯路 1 首先验证是不是代码写出 String sql select count 1 from
  • Spring中@Autowired注解用法详解

    1 概述 Spring中IOC可以通过注解方式实现 只要在spring的配置文件applicationContext xml中配置开启了包扫描Spring会自动扫描指定包及其子孙包
  • 【Python三大结构练习2】

    目录 1 数字金额转换为中文大写金额 2 恺撒密码 3 大小写转换 1 数字金额转换为中文大写金额 描述 编写一函数 将数字金额转换为中文大写金额 设最高位考虑到亿 最低位考虑到分 如 数字金额为1023 445 转换为中文大写金额为 壹仟
  • tp6整合腾讯云cos上传

    1 创建一个名为 composer json的文件 内容如下 require qcloud cos sdk v5 gt 2 0 2 执行以下命令 使用 Composer 安装 php composer update 3 复制代码 我这里目录
  • Qt编写并且调用外部动态库(dll)

    一 利用Qt编写一个简单的动态库 利用Qt编写一个简单的动态库 里面含有加 减 乘 除四个函数接口 1 打开Qt 新建一个项目 选择Library C 库 然后点击确认 2 选择共享库 写入项目名称 我这里命名为 QtMathDLL 选择项
  • Java 多线程批量操作中如何做事务控制?

    老汉聊技术 2023 04 11 12 43 发表于四川 收录于合集 java42个 编程63个 上方蓝色 老汉聊技术 选择 设为星标 前言 公司业务中遇到一个需求 需要同时修改最多约5万条数据 而且还不支持批量或异步修改操作 于是只能写个
  • 启动Redis报错:Could not create Server TCP listening socket *:6379: bind: Address already in use–解决办法

    最后一句提示 6379地址已经在使用 6379是redis默认的端口 如图我自己输入指令 redis server 显示Redis已经开启服务 1 正常解决方法三部 通过指令找到redis进程 查看所有关于它的进程详情 ps ef grep
  • Harbor-私有docker仓库离线安装配置

    因为工作需要 有时候是需要完全断网环境 此时需要在内网环境中离线安装Harbor私有仓库 1 系统环境描述 主机 X86 64架构 8G内存 期待啥时候等有机会找一台国产化机器安装一个其他架构的版本 操作系统 CentOS 7 9 2009