获取Docker映像摘要

时间:2020-05-20 15:31:15

标签: rest docker docker-registry

执行docker images --digests时,我得到alpine:latest图像的以下信息:

sha256:9a839e63dad54c3a6d1834e29692c8492d93f90c59c978c1ed79109ea4fb9a54

执行docker image inspect alpine:latest时,我可以找到相同的信息,然后查看JSON路径RepoDigests[0]

如何使用Docker registry API从注册表中获取完全相同的信息?

我尝试了以下操作:

# Authenticate (https://docs.docker.com/registry/spec/auth/token/)
curl -i "https://auth.docker.io/token?service=registry.docker.io&scope=repository:alpine:pull"

# Parse the token from the JSON result, JSON path: "token"
export TOKEN=<token>

# Query the manifest (https://docs.docker.com/registry/spec/api/)
curl -i -H "Authorization: Bearer $TOKEN" https://registry-1.docker.io/v2/library/alpine/manifests/latest

根据文档,响应标头Docker-Content-Digest应该包含摘要,但是值是不同的(但可能是清单的摘要,而不是图像的摘要?)。生成的JSON文件也不包含图像摘要。在哪里?

如何以编程方式获取与上述相同的摘要?我需要上面的一个,因为这是将docker trust sign放入签名中的一个,我想自己实现签名过程。

1 个答案:

答案 0 :(得分:0)

嗯,找到了。我必须使用其他标题:

-H "Accept: application/vnd.docker.distribution.manifest.list.v2+json"

然后得到的JSON是我要寻找的。