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

相关文章
|
8月前
|
Docker 容器
docker镜像的备份恢复迁移
docker镜像的备份恢复迁移
120 0
|
Linux Docker 容器
centos 7.9 部署 harbor 镜像仓库实践
centos 7.9 部署 harbor 镜像仓库实践
centos 7.9 部署 harbor 镜像仓库实践
|
2月前
|
运维 Linux Docker
安装Harbor镜像仓库
本文介绍了如何在Linux系统上安装和配置Harbor镜像仓库。首先通过阿里云镜像源安装Docker,然后下载并解压Harbor离线安装包。配置Harbor服务的相关参数。最后,通过运行安装脚本完成Harbor的安装,并进行基本的测试,包括登录、构建和推送Docker镜像。文章还提供了相关资源链接,方便读者进一步了解和学习。
131 2
|
3月前
|
Kubernetes Ubuntu NoSQL
harbor镜像仓库自建
harbor镜像仓库自建
|
4月前
|
存储 测试技术 数据安全/隐私保护
Docker自建仓库之Harbor部署实战
关于如何部署和使用Harbor作为Docker企业级私有镜像仓库的详细教程。
1254 12
|
5月前
|
存储 Linux Docker
备份和迁移Docker容器
【8月更文挑战第21天】在Linux系统中,备份与迁移Docker容器可通过以下步骤实现:首先,查找并记录需备份容器的ID或名称;其次,若容器正在运行,则需先停止;最后利用`docker export`命令将其导出为tar归档文件以完成备份。对于容器迁移,有两种常见方式:一是直接迁移备份文件至目标服务器,并通过`docker import`命令导入新容器;二是通过创建容器镜像,并推送至镜像仓库,之后在目标服务器上拉取该镜像并运行。值得注意的是,在进行容器迁移时应确保Docker版本兼容,同时关注数据存储、网络配置及权限设置等问题,以保障容器功能正常运作。
361 2
|
7月前
|
Ubuntu Docker 容器
迁移harbor
在Ubuntu 22.04 LTS环境中,已安装Docker的Harbor从v2.5.3迁移到v2.9.0,保留原有镜像数据。参考官方文档[v2.9.0](https://goharbor.io/docs/2.9.0/),执行包括数据目录复制、解压新版本、配置harbor.yml和docker-compose.yml、运行安装脚本等步骤。迁移后,通过测试推拉镜像确保功能正常。注意查看潜在的部署问题。
129 0
|
8月前
|
存储 API 数据安全/隐私保护
企业级Docker镜像仓库Harbor部署与使用
企业级Docker镜像仓库Harbor部署与使用
|
8月前
|
存储 安全 数据库
搭建Harbor镜像仓库
搭建Harbor镜像仓库
351 2
|
存储 安全 数据安全/隐私保护
企业级镜像仓库Harbor的安装与配置
Harbor是一个开源的容器镜像仓库管理系统,具有丰富的安全和管理功能。它可以在企业环境中搭建私有仓库,并提供可信度、多租户支持、定制性等特点。
917 1