泊坞窗图像ID和清单中的ID之间的关系是什么?
我想了解docker images
(或者docker inspect
)报告的镜像ID与registry或清单(使用v2)中的实际图层或镜像之间的关系。
我运行docker图像,我得到(缩写和改变,以保护不那么无辜):
REPOSITORY TAG IMAGE ID my.local.registry/some/image latest abcdefg
如果我使用API来获取上述图像的清单,我会得到一个包含fsLayers
,而不是其中的一个匹配图像的(完整)ID。 我明白了,因为图像是图层的总和 。
但是,如果我把这个图像拉到其他地方,我会得到相同的ID。 如果我更新图像,推拉它,新版本有一个新的ID。
我认为这可能是清单的散列。 但是,(a)通过API拉取清单不会返回JSON中清单的散列,(b)在registry目录本身中查找/var/lib/registry/v2/repositories/some/image/_manifests/tags/latest/current/link
(或index/sha256/
那些)为下载的清单提供正确的链接,但与映像ID不匹配。
我认为图像ID匹配blob,但也许我是错误的?