当前位置: 首页 > article >正文

容器镜像同步工具image-migrator

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.kler.cn/a/309063.html

相关文章:

  • SpringMVC学习笔记(二)
  • LeetCode【0033】搜索旋转排序数组
  • Android Studio 将项目打包成apk文件
  • 从0开始学习Linux——文件管理
  • SpringCloud学习笔记
  • 前端开发中常用的包管理器(npm、yarn、pnpm、bower、parcel)
  • 第14章 存储器的保护
  • Linux网络子系统TCP篇 二
  • 【PostgreSQL里vacuum但是无法回收死元组的原因】
  • 解决 Docker 端口映射错误:“No public port ‘80’ published”
  • linux驱动开发-内核并发控制
  • 【网络安全】分享4个高危业务逻辑漏洞
  • 软件测试工程师面试整理-测试工具
  • unity UnityWebRequest 的request.downloadHandler 空应用
  • 承压设备032认证-全网最全解读
  • 随笔十一、wsl子系统ubuntu磁盘清理
  • 在Ubuntu 18.04上安装R的方法
  • navicate远程linux上的pgsql提示密码失败
  • Effective C++笔记之二十三:非void函数不写return
  • 基于STM32的非接触式红外测温系统
  • 采用qt做一个命令行终端
  • 计算机人工智能前沿进展-大语言模型方向-2024-09-17
  • Vue点击按钮生成pdf文件/Vue点击按钮生成png图片
  • AJAX(一)HTTP协议(请求响应报文),AJAX发送请求,请求问题处理
  • SAM 2: Segment Anything in Images and Videos
  • c语言中“typedef”关键字,对类型进行重命名