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

环境介绍

组件名称 组件配置
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

结语

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

相关推荐
小鸟你好啊6 小时前
搭建基于 Solon AI 的 Streamable MCP 服务并部署至阿里云百炼
人工智能·阿里云·云计算
小鸟你好啊12 小时前
基于阿里云RDS SQL Server + 函数计算 + 通义AI构建智能销售分析平台Demo
人工智能·阿里云·云计算
Akamai中国13 小时前
为何弹性系统设计对云可靠性至关重要
人工智能·云计算·云服务
机器学习是魔鬼13 小时前
TRL微调实战教程
云计算·矩池云
行业研究员14 小时前
腾讯云数据库:团队知识统一检索实践
数据库·云计算·腾讯云·腾讯云数据库·团队知识
thinking_talk14 小时前
腾讯云数据库AgentMemory团队知识管理实践
数据库·人工智能·腾讯云·腾讯云数据库·agent memory·团队知识管理
Juicedata16 小时前
腾讯云 x JuiceFS:基于 FoundationDB 的企业级统一存储实践
数据库·人工智能·科技·云计算·腾讯云
国际云,接待18 小时前
AWS RDS 备份与 PITR 恢复演练:从保留期、恢复命令到应用切换验证
运维·云计算·aws·灾难恢复·数据库备份·rds
国科安芯18 小时前
ASC0101S自动双向电平转换原理深剖
单片机·嵌入式硬件·fpga开发·云计算·信息与通信