跨云镜像迁移实战:阿里云 → 腾讯云

环境介绍

组件名称 组件配置
ACR 标准版本,开启了外网访问
TCR 标准版本,开启了内网访问,并开启Private DNS
CVM 腾讯云服务器,可以公网访问到阿里云镜像仓库,腾讯云内网互通

ACR基本配置

ACR开启外网访问

ACR首页 ---> 进入指定ACR实例 ---> 仓库管理 ---> 访问控制 ---> 公网 ---> 开启

TCR基本配置

TCR开启内网访问

TCR首页 ---> 访问控制 ---> 内网访问 ---> 接入私有网络 ---> 开启私有解析(可选,不配置服务器需要手动配置hosts文件)

迁移环境准备(image-transfer)

工具特性

  • 支持多对多镜像仓库迁移
  • 支持腾讯云 TCR 个人版(CCR)一键全量迁移至企业版
  • 支持基于 Docker Registry V2搭建的docker镜像仓库服务 (如 腾讯云TCR个人版(CCR)/TCR企业版、Docker Hub、 Quay、 阿里云镜像服务ACR、 Harbor等)
  • 支持自定义 qps 限速,避免迁移时对仓库造成过大压力
  • 同步不落盘,提升同步速度
  • 利用 pipeline 模型,提高任务执行效率
  • 增量同步, 通过对同步过的镜像 blob 信息落盘,不重复同步已同步的镜像
  • 并发同步,可以通过配置文件调整并发数
  • 自动重试失败的同步任务,可以解决大部分镜像同步中的网络抖动问题
  • 不依赖docker以及其他程序

迁移工具执行流程

下载迁移工具

bash 复制代码
wget https://github.com/tkestack/image-transfer/releases/download/v1.2.3/image-transfer-linux-amd64.tar.gz

准备认证文件、迁移规则文件

registry-secret.yaml
bash 复制代码
[root@xxxxxx]# cat registry-secret.yaml
阿里云镜像仓库地址:
  username: xxxx
  password: xxxx
腾讯云镜像仓库地址:
  username: xxx
  password: xxxx
transfer-rule.yaml
bash 复制代码
[root@xxxxxx]# cat transfer-rule.yaml
#repo级别
阿里云镜像仓库地址/ops/prometheus-config-reloader: 腾讯云镜像仓库地址/ops/prometheus-config-reloader
#tag级别
阿里云镜像仓库地址/ops/prometheus-config-reloader:xxx: 腾讯云镜像仓库地址/ops/prometheus-config-reloader:xxxx

建议在腾讯云镜像仓库上面,提前创建好仓库的ns信息

目录结构展示
bash 复制代码
[root@xxxx xx]# pwd
/data/xxxx/image-transfer-dir
[root@xxxx xx]# tree
.
├── image-transfer
├── registry-secret.yaml
└── transfer-rule.yaml

正式迁移开始

命令启动

bash 复制代码
./image-transfer --securityFile=./registry-secret.yaml --ruleFile=./transfer-rule.yaml --routines=5 --retry=3

参数解释:
--securityFile=./registry-secret.yaml:指定一个包含镜像仓库认证信息的YAML配置文件路径。
--ruleFile=./transfer-rule.yaml:指定一个定义镜像同步规则的YAML配置文件路径。
--routines=5:设置并发传输的协程/线程数量,数量的大小决定了,同步速度,过大会导致机器的负载过高,过小会导致同步速度过慢,可以根据业务自行调整。
--retry=3:设置传输失败时的自动重试次数。

迁移信息解释

bash 复制代码
2025-09-23 16:31:19.779	info	transfer/job.go:88	Get a blob sha256:27b858cdcd8ac94fb049ca1bcce5b04ad26cca31558baee0f3c5fab684d42601(5419) from xxxx/ops/netshoot:v0.13 success
2025-09-23 16:31:19.779	info	transfer/job.go:93	Putting blob to xxxxx/ops/netshoot:v0.13 ing...
2025-09-23 16:31:20.956	info	transfer/job.go:103	Put blob sha256:27b858cdcd8ac94fb049ca1bcce5b04ad26cca31558baee0f3c5fab684d42601(5419) to xxxxx/ops/netshoot:v0.13 success
2025-09-23 16:31:21.705	info	transfer/job.go:164	Put manifest to xxxx/ops/netshoot:v0.13
2025-09-23 16:31:21.705	info	transfer/job.go:167	Synchronization successfully from xxxxx/ops/netshoot:v0.13 to xxxx:v0.13
2025-09-23 16:31:21.705	info	image-transfer/run.go:271	Start to retry failed jobs...
2025-09-23 16:31:21.705	info	image-transfer/run.go:303	################# Finished, 0 transfer jobs failed, 0 normal urlPair generate failed, 0 jobs generate failed #################

日志记录了一个镜像 netshoot:v0.13 从阿里云成功同步到腾讯云的完整过程:

拉取镜像层:成功从阿里云下载了一个镜像数据块。

推送镜像层:将该数据块成功上传到腾讯云。

完成同步:最后上传镜像清单文件,标志着整个镜像同步成功。

最终状态报告

Finished, 0 transfer jobs failed, 0 normal urlPair generate failed, 0 jobs generate failed

结语

至此,镜像仓库跨云迁移已圆满完成,所有镜像均顺利同步至新环境。

相关推荐
纤纡.11 小时前
阿里云 DSW 实战:从零完成 Qwen3-4B 大模型 LoRA 微调全流程
人工智能·阿里云·语言模型·云计算
hz5678912 小时前
2026 年 RTC 音视频 SDK 解析:技术架构、主流厂商与选型指南
架构·云计算·音视频·webrtc·实时音视频·信息与通信
小白考证进阶中14 小时前
阿里云ACA大模型|6月15日课程和大纲大改⚠️
人工智能·阿里云·阿里云认证·阿里云acp备考·阿里云aca证书·ai证书·阿里云aca大模型
LDR00614 小时前
LDR6020:多 Type‑C 端口角色管理与外设上电顺序的智慧核心
c语言·开发语言·云计算
brycegao32115 小时前
Vue3+Go 全栈项目上线阿里云|从 0 到 1 踩坑全纪录
开发语言·阿里云·golang
.Cnn16 小时前
SpringBoot 文件上传与阿里云 OSS 集成
java·spring boot·后端·阿里云
搞科研的小刘选手17 小时前
【大数据方向专题研讨会】第三届大数据与数字化管理国际学术会议(ICBDDM 2026)
大数据·信息安全·数据挖掘·云计算·可视化·供应链·信息管理
A100861212117 小时前
IDE、CLI、API是什么
云计算
阿里云云原生18 小时前
告别“大海捞针”式排障:阿里云 UModel 如何用“本体论”重塑 AIOps?
阿里云·ai·云计算·agent·umodel
亮38918 小时前
个人职业技能培训分享:我了解的百灵达培训真实情况
阿里云