👨🏻‍🎓博主介绍:大家好!我是李大白,一名运维容器运维工程师,热爱分享知识🌟 

🌈擅长领域:云原生、数据库、自动化运维

🙏🏻如果本文章对小伙伴们有帮助的话,🍭关注+👍🏻点赞+🗣评论+📦收藏!

🤝如果在文章描述时如有错,恳请各位大佬指正,在此感谢!!!

🍂 落叶而知秋,博闻而强识!

📕  精品专栏:Harbor大白话(企业级)

阿里云镜像迁移到Harbor详细的操作步骤_阿里云

目录

  • 前言
  • 创建RAM用户(访问控制)
  • 创建个人实例(个人版)
  • 设置镜像密码
  • 创建命名空间
  • 配置访问凭证
  • 创建镜像仓库
  • 将镜像推送到阿里云镜像仓库
  • 命令行登录阿里云镜像仓库
  • 给镜像打Tag
  • 推送镜像
  • 新建目标规则(踩坑记录)
  • 新建复制规则
  • 执行”迁移“
  • 验证

前言

业务场景:公司之前使用阿里云的ACR镜像仓库服务。后来经过发展,搭建了自己的Harbor私有镜像仓库服务,因为之前的容器镜像都是存放在阿里云镜像仓库中的。所以现在需要将阿里云的镜像【迁移】到Harbor中。

本篇以图文方式详细的记录了从“0“开始的操作步骤,实际操作过程的难点在于【新建目标规则】这一步操作中,也是楼主踩坑的地方,部分操作可根据实际情况跳过。

本文适用于阿里云和Harbor之间镜像的相互迁移,即可将阿里云的镜像迁移到Harbor,也可将Harbor中的镜像迁移到阿里云。

扩展:阿里云有个开源的镜像迁移工具 image-syncer,将会在后面的文章中详细介绍和使用。


创建RAM用户(访问控制)

【登录阿里云】—【首页】—【访问控制】—【创建RAM用户】

阿里云镜像迁移到Harbor详细的操作步骤_阿里云_02

阿里云镜像迁移到Harbor详细的操作步骤_harbor_03


创建个人实例(个人版)

阿里云镜像迁移到Harbor详细的操作步骤_运维_04

阿里云镜像迁移到Harbor详细的操作步骤_harbor_05

阿里云镜像迁移到Harbor详细的操作步骤_云原生_06


阿里云镜像迁移到Harbor详细的操作步骤_阿里云_07设置镜像密码

阿里云镜像迁移到Harbor详细的操作步骤_运维_08

阿里云镜像迁移到Harbor详细的操作步骤_阿里云_09


阿里云镜像迁移到Harbor详细的操作步骤_阿里云_07创建命名空间

创建项目前需要先创建命名空间。一个账号最多可以创建 3 个命名空间。定义您的镜像仓库命名空间,设置后不可修改。长度为2-30位,可填写小写英文字母、数字,可使用的分隔符包括“_”、“-”(分隔符不能在首位或末位)

阿里云镜像迁移到Harbor详细的操作步骤_docker_11

阿里云镜像迁移到Harbor详细的操作步骤_docker_12

阿里云镜像迁移到Harbor详细的操作步骤_运维_13


配置访问凭证

Docker客户端登录时使用的用户名为阿里云账户全名,密码为当前设置的密码

阿里云镜像迁移到Harbor详细的操作步骤_阿里云_14

获取手机验证码后点击“确认

阿里云镜像迁移到Harbor详细的操作步骤_harbor_15


创建镜像仓库

在【仓库管理】—【镜像仓库】—【创建镜像仓库】—【】

阿里云镜像迁移到Harbor详细的操作步骤_阿里云_16

阿里云镜像迁移到Harbor详细的操作步骤_harbor_17

选择【本地仓库】(可以通过命令行推送镜像到镜像仓库)

阿里云镜像迁移到Harbor详细的操作步骤_阿里云_18

然后点击【创建镜像仓库】

阿里云镜像迁移到Harbor详细的操作步骤_docker_19


将镜像推送到阿里云镜像仓库


命令行登录阿里云镜像仓库

登录方法不说都知道

给镜像打Tag

新的镜像格式为:

registry-vpc.cn-hangzhou.aliyuncs.com/阿里云用户名/镜像名称:镜像标签

[root@lidabai ~]# docker  images
REPOSITORY TAG IMAGE ID CREATED SIZE
vmware/registry-photon v2.6.2-v1.5.0 3059f44f4b9a 4 years ago 198MB
...
[root@lidabai ~]# docker tag \
vmware/registry-photon:v2.6.2-v1.5.0 \
registry.cn-hangzhou.aliyuncs.com/lidabai6/registry-photon:v2.6.2-v1.5.0

推送镜像

[root@lidabai ~]# docker push registry.cn-hangzhou.aliyuncs.com/lidabai6/registry-photon:v2.6.2-v1.5.0 
The push refers to repository [registry.cn-hangzhou.aliyuncs.com/lidabai6/registry-photon]
5e9191f65a4c: Pushed
1da5c77da464: Pushed
654b65c0f8ff: Pushed
75609935cf31: Pushed
7ab0310b3d9d: Pushed
fd8233cdfcf0: Pushed
52ef9064d2e4: Pushed
v2.6.2-v1.5.0: digest: sha256:3ee1c992200a069d8d943aa21f555950bd7d1764122a936ba2a3cb115885bf86 size: 1783

阿里云镜像迁移到Harbor详细的操作步骤_云原生_20在阿里云镜像仓库管理界面可以看到已经推送成功的镜像了:


新建目标规则(踩坑记录)

在Harbor UI管理界面进行操作:

(1)【系统管理】—【仓库管理】—【新建目标】

阿里云镜像迁移到Harbor详细的操作步骤_运维_21

(2)填写目标信息

  • 提供者:下拉选择”Alibaba ACR"
  • 目标名:填写一个具有标识性的名称
  • 目标URL:在阿里云镜像仓库的“容器镜像服务/实例列表/镜像仓库/基本信息”可以查询到,下拉选择即可,`不同地域会不一样`

阿里云镜像迁移到Harbor详细的操作步骤_运维_22

  • 访问ID:阿里云镜像仓库的命名空间名称;ram账户id

阿里云镜像迁移到Harbor详细的操作步骤_harbor_23

  • 访问密码:在前面【配置访问凭证】时设置的密码;
  • 验证远程证书:如果是自签或者非信任的证书,不可勾选该项;

阿里云镜像迁移到Harbor详细的操作步骤_运维_24

点击【连接测试】看Harbor与阿里云镜像仓库ACR是否可以正常连接。

🐖:本处【测试连接失败】,

您可以使用您的 ram 帐户创建 AK,而不是使用密码。

Aliyun SDK 不允许使用密码进行认证

访问控制(Resource Access Management,RAM)是阿里云提供的一项管理用户身份与资源访问权限的服务。使用 RAM,您可以创建、管理RAM用户(例如员工、系统或应用程序),并可以控制这些 RAM 用户对资源的操作权限。需要实名认证。

重新填写后连接测试成功!

阿里云镜像迁移到Harbor详细的操作步骤_运维_25

阿里云镜像迁移到Harbor详细的操作步骤_阿里云_26


新建复制规则

在Harbor UI管理界面操作:

【系统管理】—【复制管理】—【新建规则】,然后填写信息:

名称:自定义一个名称即可;

复制模式:pull-bashd就是将阿里云上的镜像拉到Harbor,Push则相反;

源仓库:下拉选择刚才【新建目标规则】的名称开头的;

触发模式:手动(全量)

然后点击【保存】

阿里云镜像迁移到Harbor详细的操作步骤_docker_27

阿里云镜像迁移到Harbor详细的操作步骤_docker_28

可以看到”新建规则“成功!


执行”迁移“

选择【系统管理】—【复制管理】—【新建规则】中刚才新建成功的目标规则;

然后点击【复制】按钮开始”手动“执行”复制“;

然后在跳出的会话框中,继续点击【复制】进行“复制规则确认”。


阿里云镜像迁移到Harbor详细的操作步骤_阿里云_29

阿里云镜像迁移到Harbor详细的操作步骤_运维_30

阿里云镜像迁移到Harbor详细的操作步骤_docker_31


验证

在执行复制任务完成后,查看【复制任务】对应ID的事件【成功百分比】是否为100%,如果是100%则表示全部迁移成功,然后检查两端的镜像数量是否一致。

如果【成功百分比】不是100%,则点击对应任务的ID进去查看详细的日志。

阿里云镜像迁移到Harbor详细的操作步骤_docker_32


阿里云镜像迁移到Harbor详细的操作步骤_云原生_33