当你的Docker Pull失败时出现“500 Binary provider has no content Manifest File”错误该怎么办

Pradnya Shinde
2023-01-22 11:07

如果Docker pull失败并注册一个明显的错误:

无法为'....'创建清单标记:
二进制提供程序没有'....'的内容

检查以下内容:

  1. 在你的工厂里。xUI, navigate to Administration Module -> Monitoring -> Service Status (in versions 6.x and below, navigate to Admin > Configuration > High Availability) and verify that your IP values have been correctly configured for all of your nodes.
  2. 通过UI验证清单是否正确。Docker构件存在一个json文件。如果它不在那里,那么它在Artifactory中不可用,因此解释了为什么Docker pull失败。如果是舱单。json文件存在,请尝试从UI下载。
  3. 如果你能看一下舱单。在UI中的manifest. json文件中,通过右键单击manifest获取其SHA-1值。>通用>校验和。然后:
  • 验证其二进制是否存在于二进制存储(文件系统)中。
  • 如果您有一个分片集群,根据您设置的冗余,确认二进制文件存在于文件存储库中。
  • 如果您的文件存储库中缺少二进制文件,那么它可能在您上传工件之后被删除了,这意味着您将需要发现为什么会发生从文件系统中删除的情况,然后恢复它。

如何验证文件存储库中是否存在二进制文件

Artifactory使用基于校验和的存储唯一地存储工件。这意味着上传的文件将按顺序:

  • 它的SHA-1校验和计算
  • 将其重命名为其校验和
  • 在由校验和的前两个字符组成的目录结构中托管在文件存储库中

因此,校验和为ac3f5e56…的文件将存储在目录ac中,校验和为dfe12a4b…的文件将存储在目录df中,以此类推。下面的示例显示了d4目录,其中包含两个文件,它们各自的校验和以(您猜对了)d4开头:

用户添加图片

发布日期:2019年7月8日

最后更新:2021年4月23日

关键词:Docker Pull