从私有Dockerregistry中删除图像的方法

我有一个私人dockerregistry设置,我已经推动了一些图像从其他机器到这个registry。 它是一个V2registry。 我不知道从存储库中删除图像的新方法,因为这些推送的图像没有在CLI中列出“泊坞窗图像”。

任何人都可以build议我正确的方式从磁盘上删除这些图像?

非常感谢您的回答。

谢谢

目前,无法使用外部工具从Dockerregistry中删除图像。 最简单的方法就是使用这个脚本来完成,记住它需要停机。

我已经发布了同样的答案给其他问题。 也许这对你有用。


我遇到了与我的registry相同的问题,然后我尝试了从博客页面下面列出的解决scheme。 有用。

第1步:列出目录

您可以通过调用以下url列出您的目录:

http://YourPrivateRegistyIP:5000/v2/_catalog 

响应将采用以下格式:

 { "repositories": [ <name>, ... ] } 

第2步:列出相关目录的标签

您可以通过调用以下URL来列出目录的标签:

 http://YourPrivateRegistyIP:5000/v2/<name>/tags/list 

响应将采用以下格式:

 { "name": <name>, "tags": [ <tag>, ... ] 

}

步骤3:列出相关标签的清单值

你可以在dockerregistry容器中运行这个命令:

 curl -v --silent -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -X GET http://localhost:5000/v2/<name>/manifests/<tag> 2>&1 | grep Docker-Content-Digest | awk '{print ($3)}' 

响应将采用以下格式:

 sha256:6de813fb93debd551ea6781e90b02f1f93efab9d882a6cd06bbd96a07188b073 

使用清单值运行下面的命令:

 curl -v --silent -H "Accept: application/vnd.docker.distribution.manifest.v2+json" -X DELETE http://127.0.0.1:5000/v2/<name>/manifests/sha256:6de813fb93debd551ea6781e90b02f1f93efab9d882a6cd06bbd96a07188b073 

第4步:删除标记的清单

在你的dockerregistry容器中运行这个命令:

 bin/registry garbage-collect /etc/docker/registry/config.yml 

这是我的config.yml

 root@c695814325f4:/etc# cat /etc/docker/registry/config.yml version: 0.1 log: fields: service: registry storage: cache: blobdescriptor: inmemory filesystem: rootdirectory: /var/lib/registry delete: enabled: true http: addr: :5000 headers: X-Content-Type-Options: [nosniff] health: storagedriver: enabled: true interval: 10s threshold: 3