下载前获取 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/
我的最终目标是能够读取容器从 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/