将映像推送到Azure Pipelines中每个成功构建上的集线器时,如何在Docker Hub上管理映像?

我正在使用基于微服务的体系结构,并且为每个微服务构建了单独的管道。 我正在使用Docker BuildandPush作为Azure构建管道中的一个阶段,并且在每次成功构建中,图像都被推送到DockerHub。

现在,我主要关心的是随着时间的推移,我的DockerHub注册表中充满了冗余映像,那么如何通过任何管道阶段或脚本自动清除那些冗余映像?

gaolei3452 回答:将映像推送到Azure Pipelines中每个成功构建上的集线器时,如何在Docker Hub上管理映像?

您可以通过注册表REST API删除映像。为此,您需要知道Docker映像名称和要删除的摘要。图像可以通过其namereference从注册表中删除,reference必须是摘要,否则删除将失败。

调用rest API:

DELETE http://registryhost:reigstryport/v2/<docker_image_name>/manifests/<reference>

例如:

curl -v -X DELETE https://my.docker.registry.com:5000/v2/mytestdockerrepo/manifests/sha256:66675d81b9bd5eafc105832b78abb91cab975bbcf028ca4bce4afe73f66914ee

对于成功的调用,您应该获得202 Accepted。如果图像已被删除或不存在,则会发出404 Not Found响应。

注意:从注册表版本2.3或更高版本删除清单时,在对清单进行HEAD或GET操作以获取正确的摘要时,必须使用以下标头:

Accept: application/vnd.docker.distribution.manifest.v2+json

有关详细信息,请参阅此document

本文链接:https://www.f2er.com/2891850.html

大家都在问