Docker容器:Harbor 私有仓库迁移

news2024/9/24 1:15:47

文章目录

  • 一.私有仓库迁移的介绍
    • 1.为何要对Harbor 私有仓库的迁移
    • 2.Harbor 私有仓库的迁移特点
    • 3. Harbor 私有仓库的迁移注意要点
  • 二.私有仓库迁移配置
    • 1.源Harbor配置(192.168.198.11)
      • (1)接着以下操作查看容器状况及是否可以登录 Harbor WEB UI 界面
    • 2.客户端配置(192.168.198.13)
      • (1)查看客户端状态
    • 3.新harbor服务器配置(192.168.198.12)
      • (1)安装docker容器并下载centos7镜像
      • (2)部署docker-compose
      • (3)部署Harbor服务
    • 4.数据迁移
      • (1)Harbor迁移需要迁移镜像和日志(192.168.198.11)
      • (2)新的Harbor(192.168.198.12)
      • (3)客户端登录新的Harbor(192.168.198.13)

一.私有仓库迁移的介绍

1.为何要对Harbor 私有仓库的迁移

(1)硬件升级或更换:如果源 Harbor 在旧的硬件设备上运行,并且计划将其迁移到新的硬件设备上,那么需要执行迁移操作。

(2)数据中心迁移:当需要将 Harbor 私有仓库从一个数据中心迁移到另一个数据中心时,例如迁移到不同的地理位置或云服务提供商的平台,迁移操作将是必需的。

(3)版本升级:当计划升级 Harbor 版本时,需要进行迁移操作以保留现有的私有仓库数据和设置。

(4)容量扩展:如果源 Harbor 的存储空间已经不足,或者需要将 Harbor 扩展到更大的存储系统上,那么迁移操作是必要的。

总:通过进行 Harbor 私有仓库的迁移操作,可以确保将存储的镜像、仓库配置和认证信息等重要数据安全地迁移到新的环境中,以保证 Harbor 的正常运行和用户访问的连续性。此外,在迁移过程中可以对旧的配置进行优化和调整,提高 Harbor 的性能和可靠性。

2.Harbor 私有仓库的迁移特点

(1)镜像迁移:Harbor 私有仓库是用来存储 Docker 镜像的,迁移操作主要涉及将源仓库中的镜像迁移到目标仓库中。这是迁移过程的核心部分,需要保证镜像的完整性和正确性。

(2)配置文件迁移:迁移 Harbor 还涉及将源仓库的配置文件迁移到目标仓库中,以确保在目标环境中正确配置相应的参数。

(3)认证和授权信息迁移:私有仓库可能涉及用户认证和授权机制,迁移过程中需要保证用户和权限信息的迁移,以便用户在目标环境中正常访问和管理仓库。

(4)数据一致性和可用性:迁移过程中,需要确保迁移的镜像和相关数据在源仓库和目标仓库之间的一致性和可用性。这可以通过对迁移过程进行验证和测试来实现。

(5)同步迁移和增量迁移:可以根据迁移需求选择同步迁移或增量迁移的方式。同步迁移是将整个仓库数据一次性迁移到目标环境中,适用于大规模迁移。增量迁移是将只增量部分的镜像和数据迁移到目标环境中,适用于部分镜像的迁移或者迁移时间较长的情况。

总:Harbor 私有仓库的迁移涉及到镜像、配置文件、认证和授权信息等的迁移,需要保证数据的一致性和可用性,同时需要选择合适的迁移方式和进行验证和测试,以保证迁移的成功和稳定性。

3. Harbor 私有仓库的迁移注意要点

(1)目标环境的网络和存储条件是否满足 Harbor 所需的条件。

(2)迁移的 Docker 镜像数量和大小,以及所需要的时间和带宽。

(3)是否需要对 Harbor 配置文件进行更改,以适应新环境中的不同配置。

(4)用户访问新的容器镜像仓库时,是否会对应用程序或脚本造成影响。

二.私有仓库迁移配置

主机IP地址主要软件
服务端1192.168.198.11docker、docker-compose 、harbor-offline-v1.1.2
服务端2192.168.198.12docker、docker-compose 、harbor-offline-v1.1.2
客户端192.168.198.13docker

1.源Harbor配置(192.168.198.11)

此处配置参考https://blog.csdn.net/Katie_ff/article/details/132498162?spm=1001.2014.3001.5501

(1)接着以下操作查看容器状况及是否可以登录 Harbor WEB UI 界面

#关闭防火墙
systemctl stop firewalld
setenforce 0
cd /usr/local/harbor/
#查看容器的启动状况,如不是up状态需手动启动
docker-compose ps
docker-compose up

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kHnuSVsK-1693120481370)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827110222422.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MXNyZnmI-1693120481371)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827110240893.png)]

#查看相关容器是否启动,若未启动,需手动启动
docker ps -a
docker start 容器ID

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UDs2bgvd-1693120481371)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827110908195.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XoztJO1Z-1693120481372)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827110945867.png)]

#网页测试是否正常并登录查看源harbor已有的镜像
http://192.168.198.11

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fkYHkcGc-1693120481373)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827111155984.png)]

img

img

测试登录私有仓库是否正常并查看相关镜像
docker login -u admin -p Harbor12345  http://127.0.0.1
docker images

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bcpLv5O3-1693120481373)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827111407915.png)]

2.客户端配置(192.168.198.13)

(1)查看客户端状态

#关闭防火墙
systemctl stop firewalld
setenforce 0

此处配置参考https://blog.csdn.net/Katie_ff/article/details/132498162?spm=1001.2014.3001.5501

接着以下操作查看容器是否可以登录到harbor端的私有仓库

docker login -u admin -p Harbor12345 http://192.168.198.11

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QZgtR5jG-1693120481374)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827111704663.png)]

3.新harbor服务器配置(192.168.198.12)

(1)安装docker容器并下载centos7镜像

#关闭防火墙
systemctl stop firewalld.service
setenforce 0
#修改新harbor主机名,区分新旧
hostnamectl set-hostname harbor01
su
#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2 
#设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
#安装 Docker-CE并设置为开机自动启动
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker.service
systemctl enable docker.service 
docker pull centos:7

(2)部署docker-compose

curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#下载docker-compose包
chmod +x /usr/local/bin/docker-compose
#添加权限
docker-compose --version
#查看版本

(3)部署Harbor服务

cd /opt
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
#将harbor压缩包传到/opt目录下,解压到/usr/local目录下
#此处可直接将旧的配置文件发过来,也可自己再手动配置
cp /usr/local/harbor/harbor.cfg harbor.cfg,bak
vim /usr/local/harbor/harbor.cfg
#修改harbor配置文件内容如下
hostname = 192.168.198.12
#第5行修改,设置为Harbor服务器的IP地址或者域名
harbor_admin_password = Harbor12345
第59行指定管理员的初始密码,默认的用户名/密码是admin/Harbor12345可不修改,保存退出

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pkz6oewO-1693120481374)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827113502039.png)]

cd /usr/local/harbor/
./prepare
./install.sh
#进入harbor目录执行脚本检查安装harbor
docker-compose ps

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cdupqTaP-1693120481375)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827125727907.png)]

#登录测试,查看并未有镜像
http://192.168.198.12

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S6EPHd6B-1693120481375)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827125653200.png)]

4.数据迁移

(1)Harbor迁移需要迁移镜像和日志(192.168.198.11)

#在源harbor上面查看镜像存储路径和日志存储路径
cd /usr/local/harbor
#在目录打开docker-compose.yuml文件
vim docker-compose.yuml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LQUdO1Nq-1693120481376)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827131824156.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JU6WMolg-1693120481376)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827132021172.png)]

#进入两个目录中打包所有的资源
cd /data/registry/
tar -cf new.tar.gz ./*
cd /data/database/
tar -cf new1.tar.gz ./*

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7Vqf5H5B-1693120481376)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827132136733.png)]

#将打包的镜像和日志移到新的harbor上
cd /data/registry/
scp new.tar.gz 192.168.198.12:/data/registry/
cd /data/database/
scp new1.tar.gz 192.168.198.12:/data/database/

(2)新的Harbor(192.168.198.12)

#进入相关目录将其解压
cd /data/registry/
tar -xvf new.tar.gz
cd /data/database/
tar -xvf new1.tar.gz
#解压后重启
cd /usr/local/harbor/
docker-compose restart
#登录查看是否已存在
http://192.168.198.12

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b1iNTTzn-1693120481377)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827132651569.png)]

已存在192.168.198.11上的镜像及日志

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lFnHlk71-1693120481377)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827132732983.png)]

(3)客户端登录新的Harbor(192.168.198.13)

#进入配置文件修改地址
vim /usr/lib/systemd/system/docker.service
#第13行
ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.198.12 --containerd=/run/containerd/containerd.sock

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zz8aCKM5-1693120481378)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827132933209.png)]

#重启
systemctl daemon-reload
systemctl restart docker.service
#登录新的Harbor,登录成功
docker login -u admin -p Harbor12345 http://192.168.198.12

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bq0Hje6w-1693120481378)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827133034332.png)]

docker images

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bp5qbNtt-1693120481378)(C:\Users\zhao\AppData\Roaming\Typora\typora-user-images\image-20230827133144241.png)]

#测试在源Harbor上面创建的用户登录,登录成功
docker login -u summer -p Harbor12345 http://192.168.198.12

[外链图片转存中...(img-bq0Hje6w-1693120481378)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/935848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【滑动窗口】leetcode1004:最大连续1的个数

一.题目描述 最大连续1的个数 这道题要我们找最大连续1的个数,看到“连续”二字,我们要想到滑动窗口的方法。滑动窗口的研究对象是一个连续的区间,这个区间需要满足某个条件。那么本题要找的是怎样的区间呢?是一个通过翻转0后得到…

容器导入与导出

docker的一大优势就是可移植性,容器因此docker容器可以随意的进行导入导出操作。 容器导出 使用export命令可以导出容器,具体操作如下: 创建一个容器,进行基本的配置操作 本案例中我首先创建一个nginx容器,然后启动…

开发过程中自己遇到的异常(六)

连接数据库失败: InternalError: (pymysql.err.InternalError) (1130, "Host xxx.xx.1.106 is not allowed to connect to this MySQL server") (Background on this error at: http://sqlalche.me/e/2j85) 解决方式: mysql> use mysql; …

基于静电放电算法优化的BP神经网络(预测应用) - 附代码

基于静电放电算法优化的BP神经网络(预测应用) - 附代码 文章目录 基于静电放电算法优化的BP神经网络(预测应用) - 附代码1.数据介绍2.静电放电优化BP神经网络2.1 BP神经网络参数设置2.2 静电放电算法应用 4.测试结果:5…

DebugInfo 模型功能系统介绍 文本上色 文本与表格对齐 分隔线 秒表计算器 语义日期

背景 今天系统性的为大家介绍一下 DebugInfo 模块。这个模块提供了一些丰富的基本功能的封装,希望能给有需要的人带来些许帮助。 文本上色 DebugInfo 模块引入了 colorama提供文本颜色支持。 # -*- coding:UTF-8 -*-# region 引入必要依赖 from DebugInfo.DebugI…

NGINX相关配置

NGINX相关配置 NGINX配置信息 nginx 官方帮助文档:http://nginx.org/en/docs/Nginx的配置文件的组成部分: 主配置文件:/conf/nginx.conf(/nginx/conf/nginx.conf) 子配置文件: include conf.d/*.conf#事件驱动相关的配置 同步 event { wo…

VMware安装启动windows虚拟机出错 efi vmware virtual ...... No media

本人是在最近一台新电脑想要装windows系统的虚拟机,下载了VMware workstation 17pro,也下载了官方的windows系统镜像iso文件。 但是在开启虚拟机的过程中,出现了类似以下的错误: efi vmware virtual … No media 看到有人说需要下…

OLED透明屏技术:引领品牌营销的视觉革命

在当今竞争激烈的市场中,品牌营销的成功与否关系到企业的生存和发展。 而随着科技的不断进步,新的广告展示技术不断涌现,其中OLED透明屏技术以其独特的视觉效果和创新性的应用在品牌营销领域引起了广泛关注。 那么,尼伽将详细介…

flutter和原生利用pigeon建立通道

首先导入依赖: dependencies: pigeon: ^10.0.0定义一个文件: /// 用于定于flutter和平台的桥接方法 /// HostApi() 标记的,是用于 Flutter 调用原生的方法; /// FlutterApi() 标记的,是用于原生调用 Flutter 的方法&…

pycharm 右键运行代码时总是测试模式运行(run pytest)

*# 问题 使用pycharm时,右键运行代码,结果是这样的: 运行_‘pytesr(xxx.py 内)’ 英语界面可能是这样:run_‘pytesr(xxx.py)’我并不想使用测试模式。如何改回正常模式? 解决办法 本着遇到什么问题就搜什么问题的态…

英语略读三

课文的客观,或者逻辑推理 同增通减 比错 对比选项,找一个明显的区别 防并列,文章再说主语在干嘛干嘛的,但是与答案的角度不一样,是并列的关系 在对比选项,不是证明正确的 具体问题具体分析,but…

ICCV 2023 Oral | 从无约束图像集合中生成新视角的交叉光线神经辐射场

文章链接:https://arxiv.org/abs/2307.08093 代码链接:https://github.com/YifYang993/CR-NeRF-PyTorch.git 01. 介绍 本工作旨在通过从不受限制的图像集合(例如从互联网中爬取的图像)中合成新视角图片,从而提供3D沉浸…

在大规模推荐系统中整合 ML 模型的经验教训

一、说明 在这篇博文中,我们分享了将 Netflix 大规模搜索和推荐系统的多个相关机器学习模型整合到一个统一模型中的系统设计经验。给定不同的推荐用例,许多推荐系统将每个用例视为单独的机器学习任务,并为每个任务训练定制的 ML 模型。相比之…

Linux(基础IO、文件权限、Makefile)

目录 1、man 手册 1.1 汉化 1.2 具体使用 2、文件权限 2.1 权限理解 2.2 文件详细信息查询 2.3 权限更改 3、常用函数接口 3.1 open 3.2 read 3.3 write 3.4 close 3.5 函数使用示例 4、make与Makefile 4.1 make 与 Makefile区别 4.2 Makefile的编写 5、vim简…

windows11系统重装步骤及优化技巧

目录 目录 本文目的 Windows11介绍 Windows下载 和win10对比 重装步骤 系统设置调整 系统备份还原 C盘减肥,空间优化技巧 Java开发工具 本文目的 说明windows11的系统重装步骤,大部分步骤也适用于其他windows版本。常用软件的安装与介绍。系统…

《图解HTTP》——上野 宣

图解HTTP 看完这本书并在此博客下摘录书中的部分知识以便回顾。 第一章 了解Web及网络基础 1.1 使用HTTP协议访问Web Web使用一种名为HTTP(HyperText Transfer Protocol,超文本传输协议)的协议作为规范,完成从客户端到服务器端等一系列运作流程。而协…

Compose - 交互组合项

按钮 Button OutLinedButton带外边框、TextButton只是文字、IconButton只是图标形状。 Button(onClick { }, //点击回调modifier Modifier,enabled true, //启用或禁用interactionSource MutableInteractionSource(),elevation ButtonDefaults.elevatedButtonElevation( /…

Docker网络-探索容器网络如何相互通信

当今世界,企业热衷于容器化,这需要强大的网络技能来正确配置容器架构,因此引入了 Docker Networking 的概念。Docker 是一种容器化平台,允许您在独立、轻量级的容器中运行应用程序和服务。Docker 提供了一套强大的网络功能&#x…

【rust/egui】(六)看看template的app.rs:TextEdit

说在前面 rust新手,egui没啥找到啥教程,这里自己记录下学习过程环境:windows11 22H2rust版本:rustc 1.71.1egui版本:0.22.0eframe版本:0.22.0上一篇:这里 TextEdit 文本编辑框 其定义为&#…

【调试经验】Ubuntu22.04 安装和配置MySQL 8.0.34

在安装新版本的MySQL到电脑时,按着网上一些教程执行发现错误繁多,最后索性自己摸索并把服务装好了。自己也整理了一下在操作时的一些,上传分享上来希望能帮助到大家。 目录 正文 安装MySQL 配置MySQL 登录账户 方式1: 默认账户登录 方…