0
考虑到我建立和标记的图像,像这样:比较多克标签
docker build -t foo:bar .
docker tag foo:bar foo:baz
怎么能一后,确认这两个代码是否指的是同样的事情?我希望能够通过注册表API(v2)来做到这一点,因为我可能本地没有这两个图像。这样做的
考虑到我建立和标记的图像,像这样:比较多克标签
docker build -t foo:bar .
docker tag foo:bar foo:baz
怎么能一后,确认这两个代码是否指的是同样的事情?我希望能够通过注册表API(v2)来做到这一点,因为我可能本地没有这两个图像。这样做的
一(?乏味)的方法包括将在连接到每个标签的清单文件中注册的fsLayers
:
下载http://your-registry/v2/repo/image/manifests/tag1和http://your-registry/v2/repo/image/manifests/tag2:
{
"name": "repo/image",
"tag": "tag1",
"architecture": "amd64",
"fsLayers": [{
"blobSum": "sha256:d7958e841d1f103cc24e45cb6108eaf09ecf0b424f071ac6b6ab39241cec293d"
}, {
"blobSum": "sha256:d7958e841d1f103cc24e45cb6108eaf09ecf0b424f071ac6b6ab39241cec293d"
}, {
"blobSum": "sha256:a3ed95caeb02ffe68cdd9fd84406680ae93d633cb16422d00e8a7c22955b46d4"
}],
"history": [
(...)
],
"schemaVersion": 1,
"signatures": [{
"header": { (...) },
"signature": "PwuBjXLvQE_DtF29YtyJF2N-zHkVGRh93It4zxL1Igtoi093ykMvXBL_0J6E6-eQVeYrXm3IdDAll-922zeYzQ",
"protected": "eyJmb3JtYXRMZW5ndGgiOjIwOTk0LCJmb3JtYXRUYWlsIjoiQ24wIiwidGltZSI6IjIwMTUtMTItMDdUMTM6NDE6MjJaIn0"
}]
}
然后比较fsLayers
阵列。如果两个清单之间相等,则基于这些标记构建容器将得到相同的结果(即它们指向相同的事物)。
如果您有本地图像,比较imageId
(通过docker inspect
为每个标签)是足够和容易。但我不认为这个ID可以从注册表中获得。