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

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

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

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

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

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

镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_docker

目录

  • 应用场景
  • 注册dockerhub账号
  • 命令行登录Dockerhub
  • 上传镜像到DockerHub
  • 在Harbor新建目标
  • 新建复制规则
  • 执行复制
  • 查看迁移详细结果
  • 查看迁移后的项目
  • 推荐阅读

应用场景

公司之前使用的是dockerhub作为镜像仓库,因业务发展需要,公司搭建了自己的harbor私有镜像仓库。之前存储在dockerhub上的镜像需要迁移到harbor中。

本篇文章以Harbor 2.3.5版本为演示环境,从”0“到”1“对整个迁移过程进行详细的操作和演示。


注册dockerhub账号

注册地址:​​https://hub.docker.com/​

注册过程就不用我教了吧!

镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_运维_02


命令行登录Dockerhub

在命令行登录dockerub,

[root@lidabai harbor]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: lidabai66
Password:
Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password

原因:用户名/密码错误

[root@lidabai harbor]# docker login  -u lidabai66
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_harbor_03



上传镜像到DockerHub

🐖:无需在dockerhub上创建项目。

[root@lidabai ~]# docker  images
REPOSITORY TAG IMAGE ID CREATED SIZE
redis alpine3.15 8a0942cae737 10 days ago 36.5MB
[root@lidabai ~]# docker tag redis:alpine3.15 lidabai66/redis:alpine3.15 #给本地镜像打标签
[root@lidabai ~]# docker push lidabai66/redis:alpine3.15 #将打好标签的镜像push到dockerhub
The push refers to repository [docker.io/lidabai66/redis]
a34a517cda84: Mounted from library/redis
c6ce8825d70e: Mounted from library/redis
3f9c5053c2fe: Mounted from library/redis
af824220a3a6: Pushed
dc57052270aa: Mounted from library/redis
4fc242d58285: Mounted from library/redis
alpine3.15: digest: sha256:a22bc2d15940ae67680611827b3e9b69150d7c11c063415c3775c35d163bb555 size: 1571

镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_云原生_04

然后在dockerhub上可以看到已经上传成功:

镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_云原生_05


在Harbor新建目标

在harbor UI管理界面执行操作:

【系统管理】——>【仓库管理】——>【新建目标】——>【填写提供者(Docker Hub】——>【测试连接】——>【确定】

 提供者:Docker Hub;

 目标名:在DockerHub上注册的用户名;

 目标URL:选择”提供者“后会默认填充;

 访问ID:dockerhub注册的用户名,如果迁移的是dockerhub中的公有镜像,可不用填写”访问ID“

 访问密码:dokcerhub用户的密码

 验证远程证书: 自己手动生成的证书不可以勾选;

镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_harbor_06

镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_harbor_07

信息填写完成后点击”测试连接“,如果连接测试失败请检查用户名和密码是否正确。

镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_harbor_08


新建复制规则

在创建复制策略时,如果想要拉取Docker Hub的官方镜像,比如hello-world、busybox等,则需要在源资源过滤器的名称过滤器中加上“library”前缀,如“library/hello-world”“library/busybox”“library/**”等。

如果名称过滤器为空或者被设置为“**”,而其他过滤器都保持默认值,则此复制策略将会拉取认证账户名下的所有镜像。

【触发模式】

手动:手动完成镜像的”复制/迁移“

定时:以计划任务的方式定时将dockerhub中的镜像迁移到Harbor

事件驱动:即触发,当新上传镜像到dockerHub中就会将该镜像复制到Harbor,可以为”增量模式“;

【资源过滤器】

  如果dockerhub中的某些镜像不想迁移到Harbor,可在此填写相应的信息来实现不复制某些镜像。

在harbor UI管理界面执行操作:

【系统管理】-【复制管理】-【新建规则】-【

镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_docker_09

镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_运维_10

镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_docker_11


执行复制

在新建复制规则成功后,即可“手动”执行复制操作将dockerHub上的镜像复制到Harbor。

操作步骤:

选择创建的”复制规则“—>点击“复制”

镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_云原生_12

然后点击【复制】进行确认:

镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_docker_13

观察【成功百分比】为100%表示全部迁移成功:

镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_云原生_14


查看迁移详细结果

点击复制任务下的【ID】值可查看该复制任务的详细信息:

镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_镜像_15


查看迁移后的项目

在【项目】处可以看到刚才迁移到Harbor的镜像,迁移过程会自动在Harbor创建一个项目来存放迁移后的镜像:

镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_docker_16


推荐阅读

​shell中获取Harbor中所有的镜像列表(超实用,建议收藏)​

​harbor密码丢失,忘记Harbor密码?​

​Harbor一键部署——初学者如何快速了解它?​

​​​k8s节点如何从Harbor中拉取镜像的?镜像拉取凭证的配置​

​Harbor镜像仓库漏洞扫描_如何检测你的镜像是否安全?​

​Prometheus监控Harbor实战(全网首发)​

​Harbor配置优化,配置文件深度解析!​

​Harbor UI无法登录问题复现,原因令我匪夷所思​

​Helm部署Harbor,实现高可用的镜像仓库(超详细分享)~后附踩坑记录​

​如何维护好公司的Harbor服务,看完这篇小白也会维护Harbor了!​

​【Harbor故障排查篇】docker login连接被拒绝​

​shell中获取Harbor中所有的镜像列表(超实用,建议收藏)​

​Harbor高可用设计,使用外部数据库-详细到爆的操作步骤​

​多用户场景的Harbor,我是如何轻松管理的!​

​Harbor v2.5更新,都增加了哪些功能?​

​用了这个工具,Harbor运维轻松搞定!​

​Harbor版本升级(图文并茂)​

​​​担心Harbor数据丢失?谈谈Harbor的备份和恢复方法。​

​Harbor版本升级(1.10.7—>2.0.x)​


镜像迁移:如何将dockerhub上的镜像迁移到Harbor私有镜像仓库中?_docker_17