我试图理解docker图像(或docker inspect)报告的图像ID与注册表或清单中的实际图层或图像(使用v2)之间的联系.
我运行码头图像,我得到(缩写和更改以保护不那么无辜):
REPOSITORY TAG IMAGE ID
my.local.registry/some/image latest abcdefg
如果我使用API拉出上面图像的清单,我会得到一个包含fsLayers的清单,而不是其中一个匹配图像的(完整)ID.我明白了,因为图像是图层的总和.
但是,如果我将该图像拉到别处,我会获得相同的ID.如果我更新图像,推送它,新版本有一个新的ID.
我认为它可能是清单的哈希.但是,(a)通过API提取清单不会返回JSON中清单的哈希值,并且(b)查看注册表目录本身,/ var / lib / registry / v2 /中给定清单的sha256存储库/ some / image / _manifests / tags / latest / current / link(或index / sha256 /中的那些)为下载的清单提供了正确的链接,但与映像ID不匹配.
我假设图像ID与blob匹配,但也许我错了?