容器镜像同步工具image-migrator

news/2024/9/19 0:09:50 标签: docker, 容器镜像

1 概述

image-migrator是一个用于容器镜像同步的可执行二进制命令行工具(不依赖于docker命令),能够自动将基于Docker Registry v2镜像仓库(registry、云厂商容器镜像服务、docker hub、Quay、Harbor )中的镜像迁移到基于Docker Registry v2的目标仓库。


2 下载工具

将工具下载至/usr/bin目录,并设置可执行权限。

cd /usr/bin
wget https://ucs-migration.obs.cn-north-4.myhuaweicloud.com/toolkits/image-migrator-linux-amd64
mv image-migrator-linux-amd64 image-migrator
chmod +x image-migrator

3 同步容器镜像

3.1 仓库登录凭证文件

创建一个名称叫auth.json的文件,里面保存各个仓库(可以是仓库,也可以是仓库/namespace)及其账号密码。
下面是一个示例。

cat > /tmp/auth.json << EOF
{
    "swr.cn-south-1.myhuaweicloud.com/lj": {
        "username": "********yourusername********",
        "password": "********password********",
        "insecure": true
    },

    "swr.cn-south-1.myhuaweicloud.com/migrator": {
        "username": "********yourusername********",
        "password": "********password********",
        "insecure": true
    }
}
EOF

3.2 镜像同步规则文件

文件用于描述源端镜像及其目标镜像。key是源端镜像,value是目标镜像。
key不可以为空。
当value为空时,命令行参数必须提供默认的仓库和默认的namespace。
key如果不包含镜像的tag,则表示要同步该仓库的所有tag。
下面是一个示例。

cat > /tmp/images.json << EOF
{
    "swr.cn-south-1.myhuaweicloud.com/lj/velero": "swr.cn-south-1.myhuaweicloud.com/migrator/velero",
    "swr.cn-south-1.myhuaweicloud.com/lj/nginx": "",
    "swr.cn-south-1.myhuaweicloud.com/lj/pause:3.2": "swr.cn-south-1.myhuaweicloud.com/migrator/pause:3.2",
    "swr.cn-south-1.myhuaweicloud.com/lj/kube-proxy": ""
}
EOF

3.3 执行命令

registry参数表示默认的仓库,namespace参数表示默认的namespace,在目标镜像为空时发生效果。
auth参数用于指定凭证文件,images参数用于指定镜像同步规则文件。
retries参数表示同步一个镜像失败后重试的次数。
workers参数表示工具的并发数,默认是7。

image-migrator \
--workers=10 \
--auth=/tmp/auth.json \
--images=/tmp/images.json \
--namespace=migrator \
--registry=swr.cn-south-1.myhuaweicloud.com \
--retries=2

在这里插入图片描述

4 小结

image-migrator可用一次性同步容器镜像,省去了docker pull、docker tag、docker push等操作,是一个可减少运维操作的便捷小工具。


http://www.niftyadmin.cn/n/5664748.html

相关文章

ShouldSniffAttr在自动化测试中具体是如何应用?

在自动化测试中&#xff0c;ShouldSniffAttr 这样的函数名通常暗示它是一个用于断言&#xff08;assertions&#xff09;的工具&#xff0c;用于检查某个元素或属性是否符合预期的条件。 虽然这不是一个标准的函数名&#xff0c;但我们可以根据命名推测其用途。 例如&#xf…

一种全新的webapi框架C#webmvc初步介绍

这个框架分三部分&#xff0c;第一部分数据结构层&#xff0c;第二部分http和业务管理以及sql层&#xff0c;第三部分加密层和工具类。 数据结构层分key和数据长度定义 public class Auth { [Key] public string Id { get; set; } [MaxLength(50)…

Ai+若依(智能售货机运营管理系统---帝可得)--货道关联商品【08篇---0004:关联商品】

货道关联商品 需求 对智能售货机内部的货道进行商品摆放的管理 此功能涉及四个后端接口 查询设备类型&#xff08;已完成&#xff09; 查询货道列表&#xff08;待完成&#xff09; 查询商品列表&#xff08;已完成&#xff09; 货道关联商品&#xff08;待完成&#xff0…

迈入IT世界:技术趋势、职业选择与未来展望

迈入IT世界&#xff1a;技术趋势、职业选择与未来展望 1. 引言 随着科技的飞速发展&#xff0c;信息技术&#xff08;IT&#xff09;已经成为当今社会的中坚力量。无论是智能设备、互联网服务&#xff0c;还是数据分析与人工智能&#xff0c;IT技术驱动着各行各业的创新与进步…

基于node.js koa2模拟快递柜存储取出快递微信小程序

本文介绍了一个基于Node.js Koa2框架的快递柜存储和取出快递的微信小程序。首先&#xff0c;我们使用Koa2框架搭建了一个简单的后端服务器&#xff0c;用于处理微信小程序发送的请求。然后&#xff0c;我们实现了快递柜的存储和取出功能&#xff0c;用户可以通过微信小程序扫描…

AttributeError: ‘ComfyUIManagerLogger‘ object has no attribute ‘isatty‘

使用comfyui时可能会出现错误&#xff1a; /pretty_errors/init.py", line 4, in terminal_is_interactive sys.stderr.isatty() AttributeError: ComfyUIManagerLogger object has no attribute isatty 可能跟管理器的更新有关 解决方法&#xff1a; 改一下site-pac…

LCR 023

题目&#xff1a;LCR 023 解法一&#xff1a;哈希表 将链表A所有元素放入Set中&#xff0c;遍历链表B元素&#xff0c;若某一元素在Set中存在&#xff0c;则该元素便是重复元素 public ListNode getIntersectionNode(ListNode headA, ListNode headB) {Set<Object> set …

Spring Boot-Bean注入问题

在Spring Boot开发中&#xff0c;Bean的注入是核心概念之一&#xff0c;它确保了组件之间的依赖关系得以维护并方便管理。然而&#xff0c;在实际开发过程中&#xff0c;Bean的注入有时会出现问题 1. Spring Boot中的Bean注入 首先&#xff0c;了解Spring Boot中的Bean注入机…