什么是docker registry v2 API端点来获取图像的摘要?

dei*_*tch 10 docker docker-registry

根据https://docs.docker.com/registry/spec/api/,我可以打电话/v2/<name>/tags/list来获取给定图像的标签列表.它工作正常,例如:

{"name"=>"avi/test", "tags"=>["latest"]}
Run Code Online (Sandbox Code Playgroud)

但是,我想要每个标签的摘要.是的,"摘要"实际上是清单的散列(至少我最好从API中理解它;不是100%清楚).但是,我想知道"最新"(和其他所有标签)的唯一标识符是什么.

使用案例:我可能会有人将某个版本标记为最新版本,并希望检查该版本是最新的:

docker push avi/test:2.6
docker tag avi/test:2.6 avi/test:latest
docker push avi/test:latest
# build 2.7
docker push avi/test:2.7
# oops! Forgot to tag latest to 2.7
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,如果我不仅可以检查标签 - 这将给我"2.6","2.7","最新" - 还有摘要(至少是清单),我可以找到各种标签指向的内容,审计等

小智 13

AFAIK,没有摘要API.但是,根据v2 API规范,您可以执行HEADGET请求/v2/<name>/manifests/<reference>.响应将包括Docker-Content-Digest包含指定清单的摘要的标题(例如latest).

  • @NathanielWaisbrot链接的问题给出了正确的答案.简短的版本是在请求中添加`Accept:application/vnd.docker.distribution.manifest.v2 + json`标头,然后`Docker-Content-Digest`是正确的摘要. (5认同)
  • 我能够从这个端点获得一个`Docker-Content-Digest`,但它不是图像的摘要,所以我认为这个答案不再适用.我发布了一个后续问题http://stackoverflow.com/q/39375421/1220269 (2认同)