在AMD64拉取ARM64镜像并推送

2025-10-29 20:51:00
丁国栋
原创 19
摘要:本文记录Docker异构方面的一些知识和汇总。

已知 Docker 镜像仓库中有amd64和arm64两种架构的 Docker 镜像,现在如何使用amd64架构的Linux拉取arm64架构的镜像,并把它推送到另一个Docker镜像仓库呢?

要想在 AMD64 架构的 Linux 系统上拉取、处理并推送 ARM64 架构的 Docker 镜像,可以通过 Skopeo 工具。

安装 Skopeo

# Ubuntu/Debian
sudo apt-get install skopeo
# CentOS/RHEL
sudo yum install skopeo
# 或者使用容器版本
docker run --rm quay.io/skopeo/stable:latest skopeo --version
使用 Skopeo
# 直接从源仓库复制 arm64 镜像到目标仓库
skopeo copy --src-tls-verify=false --dest-tls-verify=false \
  docker://源仓库/镜像名:标签 \
  docker://目标仓库/镜像名:标签 \
  --override-arch arm64
# 如果需要认证
skopeo copy \
  --src-creds 用户名:密码 \
  --dest-creds 用户名:密码 \
  docker://源仓库/镜像名:标签 \
  docker://目标仓库/镜像名:标签 \
  --override-arch arm64

另外 skopeo 还有其他有用的例子:


# 检视Docker镜像,默认输出也是 json
skopeo inspect docker://registry.fedoraproject.org/fedora:latest
# 导出Docker镜像
skopeo copy oci:busybox_ocilayout:latest dir:existingemptydirectory
# 删除Docker镜像
skopeo delete docker://localhost:5000/imagename:latest
# 登录镜像仓库
skopeo login --username USER myregistrydomain.com:5000
# 登出镜像仓库
skopeo logout myregistrydomain.com:5000
# 同步镜像仓库
skopeo sync --src docker --dest dir registry.example.com/busybox /media/usb
skopeo copy docker://quay.io/buildah/stable docker://registry.internal.company.com/buildah


--


发表评论
博客分类