当Docker镜像被拖动时,显示的ID是什么意思?

从DockerHub中拖出Docker镜像时,CLI会显示几个进度条,每个进度条都有不同的ID:

➜ docker pull training/sinatra Using default tag: latest latest: Pulling from training/sinatra a3ed95caeb02: Pull complete 6e71c809542e: Downloading [============> ] 17.3 MB/67.48 MB d196a7609355: Download complete 08f6dff5acea: Download complete ce65532003d0: Downloading [==============================> ] 19.24 MB/21.22 MB 54bcaa4d1a10: Downloading [=====> ] 25.39 MB/62.67 MB 8572ad96f6e1: Waiting 

下载完成后,这些ID都不会显示为下载的映像标识:

 docker images REPOSITORY TAG IMAGE ID CREATED SIZE ... training/webapp latest 6fae60ef3446 16 months ago 348.8 MB training/sinatra latest 49d952a36c58 2 years ago 447 MB 

在下载过程中显示的ID是什么意思?

简短回答:拉图像时看到的ID是“摘要”,这是每个图像层的SHA256哈希值。 出现在本地图像列表中的图像ID也是“摘要”,摘要实际上表示图像的JSONconfiguration对象的SHA256哈希值。

这些是层。 图像由其他图像组成。 所有的图像代表了“主要形象”的层次。 例如,当您使用Dockerfile创build新图像时,Dockerfile中的每一行都会创build一个新图层。

有关图像和图层的更多信息,请参阅官方文档。

那些被拉的东西是层。 每个图像由多个图层组成,每个图层都有一个ID。 图像也有一个ID。 如果你做docker images -a (所有),那么你应该看到列表中的其他拉ID。