Docker Registry v2有一个API端点可以删除镜像。
当我使用
DELETE /v2/<name>/manifests/<reference>
https://github.com/docker/distribution/blob/master/docs/spec/api.md#deleting-an-image
但是文档中提到:
删除时,必须使用digest作为参考,否则将无法删除。
事实上,使用标签(tag)是行不通的,并且会返回“405操作不支持”。
问题在于,似乎没有端点可以获取图像的digest。
列出图像和标签的端点只列出了它们。
尝试使用以下命令获取清单:
GET /v2/<name>/manifests/<reference>
当我使用
tag
作为<引用>
时,我发现一个名为Docker-Content-Digest
的头部被设置了一个digest
。文档中指出这个digest
是:
Docker-Content-Digest:请求目标内容的摘要。
而正文中包含一堆blobSum: <digest>
如果我尝试使用标头的digest值,使用:
GET /v2/<name>/manifests/<reference>
当我将digest
作为<reference>
使用时,返回了404
错误。
digest
的格式如下:sha256:6367f164d92eb69a7f4bf4cab173e6b21398f94984ea1e1d8addc1863f4ed502
我尝试过带有和不带有sha256
前缀,但都没有成功。
那么,我应该如何获取要删除的镜像的digest
以进行删除操作呢?