Docker 镜像的镜像 ID 和摘要有什么区别?

问题描述 投票:0回答:1

这让我感到非常困惑。我认为 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
    (摘要) 不是相同的值。但为什么?同一张图像有两个不同的
    sha256
    哈希值的目的是什么?分别是如何计算的?

在阅读《Docker Deep Dive》这本书时,我对此感到困惑,无论是在书中还是在网上,我都无法找到明确的答案。

docker hash sha256
1个回答
79
投票

“摘要”是清单的哈希值,在 Docker 注册表 v2 中引入。
  • 图像 ID 是本地图像 JSON 配置的哈希值。
© www.soinside.com 2019 - 2024. All rights reserved.