Podman push镜像时出现层表示错误无法推送如何解决
报错根因
该报错是Podman 3.2.x版本的已知缺陷,当本地镜像存储格式与目标镜像仓库要求的格式不匹配时,版本内置的签名校验逻辑会误拦截正常的镜像层格式转换操作,导致推送失败。
可按以下优先级尝试修复:
- 推送时添加
--remove-signatures参数跳过签名校验,命令示例:podman push --remove-signatures <本地镜像名:标签> <仓库地址/镜像名:标签> - 如果上述操作无效,额外指定镜像传输格式为Docker v2 schema2,避免格式转换触发拦截,命令示例:
podman push --format v2s2 --remove-signatures <本地镜像名:标签> <仓库地址/镜像名:标签> - 以上操作都无效的话,升级Podman到3.3及以上版本即可解决该缺陷,RHEL 8.4可直接通过官方AppStream源升级:
dnf update podman - 验证项:推送前执行
podman inspect <本地镜像名:标签> | grep Digest,确认返回的镜像摘要值和另一台可正常推送的主机上的同镜像摘要值一致,排除本地镜像拉取损坏的问题。
内容的提问来源于stack exchange,提问作者CozyBob
相关产品推荐
相关产品推荐

