下载前获取 docker 图片的摘要哈希

Get digest hash of docker image before downloading

我的最终目标是能够读取容器从 Docker hub 拉取之前和之后的哈希值,以验证从 dockerhub 下载的图像与我下载的图像相同现在在我的电脑上。我知道在这种情况下远程和本地文件的冗余验证对我来说很重要。

我可以通过执行 docker images --digests 下载图像后读取图像,这给了我可以使用的哈希值,但我不知道在哪里可以找到可以与 docker hub[ 进行比较的东西=13=]

docker images --digests                                                                            
REPOSITORY                             TAG                       DIGEST                                                                IMAGE ID       CREATED       SIZE
mcr.microsoft.com/dotnet/sdk           3.1.410-nanoserver-1809   sha256:c579393a1cb901b13355e985271c94c35cde0bd49f8640ace97f16f4fa641bac   9cba62e9195e   8 days ago    760MB
mcr.microsoft.com/windows/servercore   ltsc2019-amd64            sha256:ad4ef35c9cfa9d3da0a05bfaa0901e08ee2027ea10d8487490caa9d520c46a8a   5b60ac4e9e92   11 days ago   5.62GB

您使用像 skopeo 这样的工具,您可以在其中 运行 这样的命令

skopeo inspect docker://docker.io/alpine:latest

它将存储库和 returns 数据查询为 JSON。图像数据的开头包括摘要。

{
    "Name": "docker.io/library/alpine",
    "Digest": "sha256:234cb88d3020898631af0ccbbcca9a66ae7306ecd30c9720690858c1b007d2a0",
    "RepoTags": [
        "2.6",
        "2.7",

如果您喜欢冒险,也可以自己查询注册表 API。文档在这里:https://docs.docker.com/registry/spec/api/