什么是“清单 blob 未知:注册表未知 blob”错误

and*_*dig 5 docker docker-registry

我正在尝试将多架构 docker 映像推送到 docker hub 并遇到错误(在https://github.com/docker/distribution/issues/3100处打开了 docker 问题):

\n\n
\xe2\x9d\xaf docker build -t andig/evcc:latest-amd64 -f linux-amd64-.Dockerfile .\n\xe2\x9d\xaf docker build -t andig/evcc:latest-arm.v6 -f linux-arm-6.Dockerfile .\n\xe2\x9d\xaf docker push andig/evcc:latest-amd64\n\xe2\x9d\xaf docker push andig/evcc:latest-arm.v6\n\xe2\x9d\xaf docker manifest create --amend andig/evcc:latest andig/evcc:latest-amd64 andig/evcc:latest-arm.v6\n\xe2\x9d\xaf docker manifest annotate andig/evcc:latest andig/evcc:latest-amd64 --os=linux --arch=amd64\n\xe2\x9d\xaf docker manifest annotate andig/evcc:latest andig/evcc:latest-arm.v6 --os=linux --arch=arm --variant=v6\n\xe2\x9d\xaf docker manifest push andig/evcc:latest\n\nfailed to put manifest docker.io/andig/evcc:latest: errors:\nmanifest blob unknown: blob unknown to registry\nmanifest blob unknown: blob unknown to registry\nmanifest blob unknown: blob unknown to registry\nmanifest blob unknown: blob unknown to registry\nmanifest blob unknown: blob unknown to registry\n
Run Code Online (Sandbox Code Playgroud)\n\n

搜索周围显示错误可能与“外部层”( https://issues.sonatype.org/browse/NEXUS-11865 )有关,但目前尚不清楚基于 Alpine 构建图像时如何发生这种情况。

\n\n

由于 docker github 票证和论坛问题没有得到任何回复 - 我还能做些什么来进行进一步分析?例如,我怎样才能找出它抱怨的是哪一层?

\n

and*_*dig 6

由于我怀疑我可能已将其推送到 docker hub 的清单存在某种损坏的问题,因此我开始使用干净的本地注册表重试该过程。按照这些步骤,我得到了同样的错误消息。

在这个阶段,我开始了另一轮谷歌搜索,它不仅建议用于--purge本地清理清单(这对解决此问题没有帮助),而且还通过删除~/.docker/manifests.

删除清单文件夹后,本地和 docker hub 的注册表推送都开始工作。