根据 https://docs.docker.com/registry/spec/api/ 我可以调用
/v2/<name>/tags/list
来获取给定图像的标签列表。它工作正常,例如:
{"name"=>"avi/test", "tags"=>["latest"]}
但是,我想要每个标签的摘要。是的,“摘要”实际上是清单的哈希值(至少是我从 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
在上述情况下,如果我不仅可以检查标签 - 它将给我“2.6”,“2.7”,“最新” - 而且还可以检查摘要(至少是清单),我可以找到各种标签指向的内容审计等
AFAIK,没有摘要 API。但是,根据 v2 API 规范,您可以针对
HEAD
执行 GET
或 /v2/<name>/manifests/<reference>
请求。响应将包含一个 Docker-Content-Digest
标头,其中包含指定清单的摘要(例如 latest
)。