docker 图像摘要真的安全吗?
Are docker image digests really secure?
docker 如何处理摘要?
我可以在纯文本中看到,当我运行 docker image --inspect
时,图像的摘要。还有一个问题是,在我将本地图像推送到注册表之前,本地图像没有摘要(而且 AFAIK,如果我将图像推送到各种注册表,它会有各种摘要,但从未尝试过)。
我担心 docker 可能实际上在使用该信息,而不是在我每次使用或提取图像时计算哈希值。
有没有办法真正告诉 docker:“嘿,我想让你现在重新检查图像内容的哈希值。它们是否与我第一次创建图像时完全相同?或者有有人操纵过它吗?
并且:docker 真的会在每次图像 运行(通过摘要)或至少每次拉取图像(通过摘要)时计算该哈希值吗?
摘要是在推送和拉取到注册表时计算的。它是图像清单的 sha256 校验和,docker 的当前版本独立于注册表(较旧的模式 v1 语法在清单中包含 repository/tag,导致摘要根据图像而变化姓名)。层摘要包含在该清单中,注册表中的摘要是压缩的 tar 文件。在本地 docker 引擎上提取文件后,它们不会被重新验证,而且我还不知道可以验证 /var/lib/docker
下的文件自映像以来未被更改的命令被拉了。
docker 如何处理摘要?
我可以在纯文本中看到,当我运行 docker image --inspect
时,图像的摘要。还有一个问题是,在我将本地图像推送到注册表之前,本地图像没有摘要(而且 AFAIK,如果我将图像推送到各种注册表,它会有各种摘要,但从未尝试过)。
我担心 docker 可能实际上在使用该信息,而不是在我每次使用或提取图像时计算哈希值。
有没有办法真正告诉 docker:“嘿,我想让你现在重新检查图像内容的哈希值。它们是否与我第一次创建图像时完全相同?或者有有人操纵过它吗?
并且:docker 真的会在每次图像 运行(通过摘要)或至少每次拉取图像(通过摘要)时计算该哈希值吗?
摘要是在推送和拉取到注册表时计算的。它是图像清单的 sha256 校验和,docker 的当前版本独立于注册表(较旧的模式 v1 语法在清单中包含 repository/tag,导致摘要根据图像而变化姓名)。层摘要包含在该清单中,注册表中的摘要是压缩的 tar 文件。在本地 docker 引擎上提取文件后,它们不会被重新验证,而且我还不知道可以验证 /var/lib/docker
下的文件自映像以来未被更改的命令被拉了。