执行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
放入签名中的一个,我想自己实现签名过程。
答案 0 :(得分:0)
嗯,找到了。我必须使用其他标题:
-H "Accept: application/vnd.docker.distribution.manifest.list.v2+json"
然后得到的JSON是我要寻找的。 p>