docker - 什么是“清单 blob 未知:注册表未知的 blob”错误
问题描述
我正在尝试将多架构 docker 映像推送到 docker hub 并遇到错误(在https://github.com/docker/distribution/issues/3100打开 docker 问题):
❯ docker build -t andig/evcc:latest-amd64 -f linux-amd64-.Dockerfile .
❯ docker build -t andig/evcc:latest-arm.v6 -f linux-arm-6.Dockerfile .
❯ docker push andig/evcc:latest-amd64
❯ docker push andig/evcc:latest-arm.v6
❯ docker manifest create --amend andig/evcc:latest andig/evcc:latest-amd64 andig/evcc:latest-arm.v6
❯ docker manifest annotate andig/evcc:latest andig/evcc:latest-amd64 --os=linux --arch=amd64
❯ docker manifest annotate andig/evcc:latest andig/evcc:latest-arm.v6 --os=linux --arch=arm --variant=v6
❯ docker manifest push andig/evcc:latest
failed to put manifest docker.io/andig/evcc:latest: errors:
manifest blob unknown: blob unknown to registry
manifest blob unknown: blob unknown to registry
manifest blob unknown: blob unknown to registry
manifest blob unknown: blob unknown to registry
manifest blob unknown: blob unknown to registry
搜索显示错误可能与“外部图层”(https://issues.sonatype.org/browse/NEXUS-11865)有关,但目前尚不清楚如何基于 Alpine 构建图像。
由于 docker github ticket 和一个论坛问题没有得到任何回应——我还能做些什么来进一步分析?例如,我怎样才能找出它在抱怨哪一层?
解决方案
由于我怀疑我可能已推送到 docker hub 的清单存在某种问题,因此我开始使用干净的本地注册表重试该过程。按照这些步骤,我得到了同样的错误消息。
在这个阶段,我开始了另一轮谷歌搜索,它不仅建议--purge
用于在本地清理清单(这对解决这个问题没有帮助),而且还建议通过删除来删除本地清单缓存~/.docker/manifests
。
删除清单文件夹后,注册表推送-本地和 docker hub-开始工作。
推荐阅读
- python - 从云存储重写具有云功能的 csv 文件并将其发送到 BigQuery
- android - 如何获得精确到 6 米的位置?
- c# - 当前上下文中不存在名称 Host
- javascript - 如何遍历 div 中的 ul 元素并在提交时单独隐藏它们?
- java - 如何只允许用户输入 az 的输入并使用 if 语句提示正确的输入
- python - 创建一个列表 t,如果它包含“t”,则仅保存运动员的姓名。如果不包含字母“t”,则将运动员姓名保存到其他列表中
- python - Python3 打印语句未在命令行上显示任何输出
- python-3.x - 直接运行与 pytests 时的 Python3 导入问题
- powerbi - PowerBI中的多对多关系按日期
- android - 如何使用 Flutter 应用程序从文件管理器打开(音频)文件