Docker映像的映像ID与摘要之间有什么区别?

时间:2019-05-29 16:07:52

标签: docker hash sha256

这让我感到困惑。我以为Docker的映像ID是其SHA256哈希。但是,显然docker image ls --digests(列在列标题DIGEST下)的结果不同于该图像的IMAGE ID

例如

docker image ls --digests alpine
REPOSITORY          TAG                 DIGEST                                                                    IMAGE ID            CREATED             SIZE
alpine              latest              sha256:769fddc7cc2f0a1c35abb2f91432e8beecf83916c421420e6a6da9f8975464b6   055936d39205        2 weeks ago         5.53MB

同时

docker image ls --no-trunc
REPOSITORY                                             TAG                 IMAGE ID                                                                  CREATED             SIZE
...
alpine                                                 latest              sha256:055936d3920576da37aa9bc460d70c5f212028bda1c08c0879aedf03d7a66ea1   2 weeks ago         5.53MB

很明显sha256:055936d3920576da37aa9bc460d70c5f212028bda1c08c0879aedf03d7a66ea1(图像ID)和sha256:769fddc7cc2f0a1c35abb2f91432e8beecf83916c421420e6a6da9f8975464b6(DIGEST)不是相同的值。但为什么?具有相同图像的两个不同的sha256哈希的目的是什么。分别如何计算?

在阅读《 Docker Deep Dive》一书时,我对此感到困惑,无论是在书中还是在线上,我都找不到清晰的答案。

1 个答案:

答案 0 :(得分:1)

感谢michalk的评论。简短的答案是:

  • “摘要”是清单的哈希,在Docker注册表v2中引入。
  • 图像ID是本地图像JSON配置的哈希值。