You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Podman推送镜像至ECR时如何保留多架构manifest list

问题根因

podman pull默认只会拉取当前主机对应架构的单架构镜像到本地,执行podman tag时,绑定的是本地存储的单架构镜像实例,并不会关联源镜像的完整多架构manifest列表,所以最后推送到仓库的只有当前主机架构(当前环境为amd64)的单版本镜像,自然无法在其他架构主机上运行。
之前能查到源镜像的多架构manifest,是podman缓存了远端的manifest信息,不代表本地存储了所有架构的镜像层和对应的清单关联关系。

操作步骤
  • 先清理本地之前错误生成的目标标签镜像,避免缓存干扰:
podman rmi $MY_REGISTRY/alpine:latest
  • 创建指向目标仓库地址的多架构manifest清单,直接关联源镜像的所有架构条目,不需要走普通tag流程:
podman manifest create $MY_REGISTRY/alpine:latest docker.io/library/alpine:latest
  • 验证本地manifest清单完整性,执行下列命令后如果能看到和源alpine一致的多架构条目、没有单镜像告警,就说明配置正确:
podman manifest inspect $MY_REGISTRY/alpine:latest
  • 推送时必须加--all参数,让podman把完整manifest list和关联的所有架构镜像层一起推送到ECR仓库:
podman push --all $MY_REGISTRY/alpine:latest
补充说明
  • 批量搬运多架构镜像时,所有镜像都要走上述manifest创建+全量推送的流程,普通tag操作无法保留多架构属性。
  • 如果是自行构建的多架构镜像,可以用podman manifest add把不同架构编译好的单镜像逐个加到manifest清单里,再用--all参数推送即可。
  • 推送完成后可以在arm、ppc64le等其他架构主机上拉取验证,容器运行时会自动匹配对应架构的镜像层。

内容的提问来源于stack exchange,提问作者hosselausso

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 05:21:46