如何计算Docker图像的摘要?

lew*_*ada 6 docker

摘要是泊坞窗图像的sha256哈希值,但图像实际上不是单个文件,而是一组图层.我假设摘要是图像清单文件中的sha256哈希值,但我已经计算了许多清单文件的sha256哈希值,并将结果与​​摘要码头提供的图像进行比较,它们是差异.那么究竟是什么样的sha256-hashed来创建Image digest值呢?

Sun*_*oon 6

Image Digest 是清单正文的摘要,不包含签名内容。确保在计算之前将其排除。

https://docs.docker.com/registry/spec/api/#content-digests

摘要标题

为了提供 http 内容的验证,任何响应都可以包含 Docker-Content-Digest 标头。这将包括响应中返回的目标实体的摘要。对于 Blob,这是整个 Blob 内容。对于清单,这是不带签名内容的清单主体,也称为 JWS 有效负载。请注意,摘要计算常用的规范化可能取决于内容的媒体类型,例如清单。


thr*_*eve 3

根据我在 Docker 源代码中的经历,摘要似乎是表示映像配置的 JSON 字符串的 SHA256(默认情况下)。

您可以查看创建图像的相关方法以及计算摘要的函数

  • 链接到源代码固然很棒,但链接到特定的提交哈希而不是“master”是值得的,因为“master”中的代码会随着时间的推移而发生变化,并且您的行号将不再相关。 (3认同)