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

相关文章
|
Java 测试技术 API
解决harbor上删除镜像不释放空间,无需停止harbor
解决harbor上删除镜像不释放空间 docker镜像仓库中镜像的清理,一直是个比较麻烦的事情。尤其是在测试环境当中,每天都会有大量的构建。由此会产生大量的历史镜像,而这些镜像,大多数都没有用。
3740 0
|
Web App开发 NoSQL 安全
ARM架构-银河麒麟v10-server离线安装Harbor
ARM架构-银河麒麟v10-server离线安装Harbor
3085 0
|
关系型数据库 PostgreSQL Docker
harbor-db重启报错:initdb: error: directory "/var/lib/postgresql/da..
harbor-db重启报错:initdb: error: directory "/var/lib/postgresql/da..
1025 1
|
运维 Kubernetes 监控
|
缓存 开发工具 git
Docker 从构建开始导出一个镜像
docker build [OPTIONS] PATH | URL | -
684 1
|
Kubernetes 监控 Cloud Native
快速部署YuniKorn开启全能管理与调度器
本文介绍了YuniKorn的基本信息,并通过阿里云计算巢完成了YuniKorn的快速部署,使用者不需要自己下载代码,不需要自己安装复杂的依赖,不需要了解底层技术,只需要在控制台图形界面点击几下鼠标就可以快速部署并启动YuniKorn,非技术同学也能轻松搞定。
|
存储 网络安全 数据安全/隐私保护
Docker--harbor私有仓库部署与管理
Docker--harbor私有仓库部署与管理
Docker--harbor私有仓库部署与管理
|
API
Istio 使用ingress和gateway两种方式公开服务
本文档指导您完成Istio网关的部署与配置。首先安装`istiod`(步骤略过)。接着,创建`ingress.yaml`文件,定义Istio入口网关的服务、部署及权限设置,通过`kubectl apply -f ingress.yaml`命令应用。最后,创建Ingress资源,指定主机名、后端服务及TLS配置,实现对外部请求的路由管理。
1324 1
|
Kubernetes 算法框架/工具 Docker
k8s拉取harbor仓库镜像
k8s拉取harbor仓库镜像
1798 5
|
Kubernetes 负载均衡 网络协议
K8s如何实现服务发现与配置管理
K8s在实现负载均衡与配置管理上的原理是咋样的呢?

热门文章

最新文章