DockerHub:sha摘要不匹配

时间:2019-12-24 04:10:41

标签: docker dockerhub

我想确定DockerHub中最新docker映像的sha摘要:

如果我尝试获取最新图像,我可以看到摘要

# docker pull mysql:latest
...
Digest: sha256:c93ba1bafd65888947f5cd8bd45deb7b996885ec2a16c574c530c389335e9169
Status: Downloaded newer image for mysql:latest
docker.io/library/mysql:latest

因此摘要为c93ba1

但是如果我去https://hub.docker.com,我会看到的

enter image description here

因此有2个摘要:511ca265b41c9a355d5c4ec0

此外,如果我尝试使用任何指定的摘要进行提取:

# docker pull mysql@sha256:9a355d5c4ec0351a954b11b494c597cd4e6ab2c8a04ce69c5f8332819890c43e
Error response from daemon: manifest for mysql@sha256:9a355d5c4ec0351a954b11b494c597cd4e6ab2c8a04ce69c5f8332819890c43e not found: manifest unknown: manifest unknown
# docker pull mysql@sha256:511ca265b41cabb694fda409b8ae87fb0a83db15cfb8429d581c33c7aafacddf
Error response from daemon: manifest for mysql@sha256:511ca265b41cabb694fda409b8ae87fb0a83db15cfb8429d581c33c7aafacddf not found: manifest unknown: manifest unknown

但是,如果我尝试从pull命令中获得的代码,它会起作用:

docker pull mysql@sha256:c93ba1bafd65888947f5cd8bd45deb7b996885ec2a16c574c530c389335e9169
sha256:c93ba1bafd65888947f5cd8bd45deb7b996885ec2a16c574c530c389335e9169: Pulling from library/mysql
Digest: sha256:c93ba1bafd65888947f5cd8bd45deb7b996885ec2a16c574c530c389335e9169
Status: Image is up to date for mysql@sha256:c93ba1bafd65888947f5cd8bd45deb7b996885ec2a16c574c530c389335e9169
docker.io/library/mysql@sha256:c93ba1bafd65888947f5cd8bd45deb7b996885ec2a16c574c530c389335e9169

我在做什么错? 有没有一种方法可以在不提取图像的情况下获取摘要?

2 个答案:

答案 0 :(得分:4)

根据this github comment,显然,在计算sha256摘要时,CLI使用包含所有不同机器体系结构选项的清单,而DockerHub页面上的每个摘要仅使用具有特定特定体系结构的清单来计算。

IMO,这不必要地造成混淆,应该调整两者之一,以便它们匹配或标记得更好。

更新: 自从我找到答案以来已经有一段时间了,所以我不记得详细信息了,但是有关更多信息,请查看this page我相信这与图像清单的阴影与<清单>清单清单的阴影 ...

之间的差异有关

答案 1 :(得分:0)

奇怪的是,当我访问dockerhub时​​,mysql:latest(现在)有一个不同的摘要,该摘要报告为一个月前的更新:

https://hub.docker.com/layers/mysql/library/mysql/latest/images/sha256-a65e1689b806ccb757887565a3c1d8e7467f14621012d472076cad4117eb06f3

在您的示例中,c93va1是适用于您的体系结构的正确哈希。您在使用Mac吗?其他散列(如果有效)适用于ARM和AMD64上Linux的映像。可以解释您所看到的差异吗?

我发现处理清单时dockerhub不太理想。 Google Container Registry会显示图像的清单以及哈希值,因此更容易确认。

请参阅以下与我相关的问题的答案,希望对您有所帮助:https://stackoverflow.com/a/57878742/609290