Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker image';s ID和sha256与此字段相关,以及如何生成_Docker - Fatal编程技术网

Docker image';s ID和sha256与此字段相关,以及如何生成

Docker image';s ID和sha256与此字段相关,以及如何生成,docker,Docker,如标题所述: Docker的图像ID和图像sha256之间有关系吗?(如果我键入docker images--no trunc我得到sha256作为图像id) 如何计算图像ID?这是随机的吗 如何计算sha256?据我所知,这与图像的内容有关。我错了吗 Docker 1.10之前的图像ID是随机的,但从那时起,它们是使用哈希确定地生成的(目前是SHA256)。每个图像层都有一个摘要,它是其内容的散列。图像ID是一个不同的摘要,从配置中散列出来,其中包括其层的摘要 您可以在图像列表和历史记录中看

如标题所述:

  • Docker的图像ID和图像sha256之间有关系吗?(如果我键入
    docker images--no trunc
    我得到sha256作为图像id)
  • 如何计算图像ID?这是随机的吗
  • 如何计算sha256?据我所知,这与图像的内容有关。我错了吗

Docker 1.10之前的图像ID是随机的,但从那时起,它们是使用哈希确定地生成的(目前是SHA256)。每个图像层都有一个摘要,它是其内容的散列。图像ID是一个不同的摘要,从配置中散列出来,其中包括其层的摘要

您可以在图像列表和历史记录中看到不同的摘要:

> docker images --digests                                                                                                                                   
REPOSITORY                  TAG                 DIGEST                                                                    IMAGE ID          CREATED       
ubuntu                      latest              sha256:28d4c5234db8d5a634d5e621c363d900f8f241240ee0a6a978784c978fe9c737   c73a085dc378      3 days ago

> docker history ubuntu                                                                                                                                     
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT                                         
c73a085dc378        3 days ago          /bin/sh -c #(nop)  CMD ["/bin/bash"]            0 B
在输出中,“图像ID”实际上是叶层的摘要,而图像本身具有不同的摘要


Docker称之为内容可寻址ID——其基本原理在中进行了解释,Nigel Brown的博客文章中有一个非常全面的演练。

对于
叶层
您是否打算将容器层(即层堆栈顶部的可写层)?不,叶层是图像中的“顶部”层(其中来自图像的
是“底层”。容器的可写层位于来自图像的叶层的顶部。