开发者社区> 大数据指北> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

harbor的镜像迁移

简介: bigdata大数据完全分布式
+关注继续查看

大家好,我是脚丫先生 (o^^o)
在大数据运维中,遇到一个问题:之前的Harbor是搭建在科研网,而现在的Harbor是搭建在办公网。两边的网络是不联通的(无法互相ping通),要把老的Harbor仓库里的镜像迁移到现有的Harbor仓库。如何去做呢?

在这里插入图片描述

一、迁移思路

  • (1) 可以把Harbor仓库里的镜像全部pull下来,打包成镜像,之后导入现有Harbor仓库所在的服务器,修改tag标签,最后push到仓库。
  • (2) 利用本地的虚拟机作为中转,编写脚本,进行快速把之前仓库里的镜像push到现有仓库。

二、本地虚拟机中转

  • (1) 首先把本地虚拟机安装好docker
    在这里插入图片描述
  • (2) 在docker中配置好两个私有仓库
[root@spark1 ~]# cat /etc/docker/daemon.json 
{
  "insecure-registries": ["10.1.119.12","172.10.10.xx"],     (这里为old与new的Harbor仓库服务器地址)
  "registry-mirrors": [
       "https://kuamavit.mirror.aliyuncs.com", "https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn"
    ]
}

重启docker,即可。

  • (3) 编写pull与push脚本

在本地中转虚拟机里进行操作。所有的push操作,都必须先登陆new(新的)Harbor仓库获得权限

docker login http://172.10.10.xx

输入用户名和密码即可。

1.第一步:

curl -X GET --header 'Accept: application/json' 'http://10.1.119.12/api/search?q=项目名称' 

找到你需要迁移的项目project_id
2.第二步:修改pull和tag、push脚本(只需要修改project_id)粗略版本,能完美成功!

#!/bin/bash
 
URL="http://10.1.119.12"
IP="10.1.119.12"
USER="admin"
PASS="Harbor12345"
targetIP="172.10.10.xx"
REPOS=$(curl -s -X GET --header 'Accept: application/json' "${URL}/api/repositories?project_id=45"|grep "name"|awk -F '"' '{print $4}')
for rp in ${REPOS}
do
  TAGS=$(curl -s -X GET --header 'Accept: application/json' "${URL}/api/repositories/${rp}/tags"|grep \"name\"|awk -F '"' '{print $4}'|sort -r)
  a=$(echo ${rp}|awk -F "/" '{print $2}')
    for t in ${TAGS}
    do
        docker pull ${IP}"/"${rp}":"${t} 
        docker tag ${IP}"/"${rp}":"${t} ${targetIP}"/"${rp}":"${t}
        docker rmi ${IP}"/"${rp}":"${t}
        docker push ${targetIP}"/"${rp}":"${t}
    done
    echo "===================="
done

三、参考

(1) 私有仓库迁移harbor: https://blog.csdn.net/zsy_1991/article/details/101029404
(2) harbor批量导出镜像: https://www.cnblogs.com/fan-gx/p/11392159.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何快速删除harbor镜像
如何快速删除harbor镜像
58 0
企业DevOps之路:发布镜像到 Harbor 仓库
本篇内容记录了harbor仓库的相关操作。
73 0
部署Harbor容器仓库,给镜像文件一个家
部署Harbor容器仓库,给镜像文件一个家
48 0
企业DevOps之路:Jenkins 集成 Harbor 自动发布镜像
实际中,一般会结合 Jenkins 的流水线,进行自动构建和发布。
91 0
harbor-个人私有仓库傻瓜式搭建
在使用k8s时,需要指定使用的镜像,但是如果发布springboot等私密项目,将镜像发布到网络上或许不安全,那么需要我们在本地安装一个私人仓库,然后将镜像上传到私人仓库在获取,这里我们选择市面上通用的harbor。本文楼主亲测,按照步骤执行即可。
71 0
看不到Harbor我也睡不着觉啊
上午打球,下午陪小孩子看上海科技展,晚上搞定harbor。 完美!!!:) 参考文档: https://www.dwhd.org/20161023_110618.html http://blog.csdn.net/cuipengchong/article/details/68496627 http://www.tuicool.com/articles/RvAF7nn http://www.cnblogs.com/HendSame-JMZ/p/6020580.html   但安装docker-compose时注意pip软件包的名称。
1031 0
深入JVM分析spring-boot应用hibernate-validator NoClassDefFoundError
问题 可重现的Demo代码:demo.zip 最近排查一个spring boot应用抛出hibernate.validator NoClassDefFoundError的问题,异常信息如下: Caused by: java.
1154 0
error: png.h not found.
执行php安装 --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-sessio
1125 0
+关注
大数据指北
知名国企开发工程师,目前大数据和后端开发,致力全栈。
20
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载