我有一个私人Docker注册表设置,我已经从其他机器推了一些图像到这个注册表。V2注册表我不知道一种新颖的方法来删除存储库中的图像,因为这些推送的图像不会在CLI中列出“docker images”。谁能告诉我从磁盘中删除这些图像的正确方法?感谢你的回答。谢谢
ar5n3qh51#
我对其他问题也给出了同样的答案。或许对你有用。我也遇到了同样的问题,我的注册表,然后我尝试了下面列出的解决方案从博客页面。有时灵
您可以通过调用以下URL来列出您的目录:
http://YourPrivateRegistyIP:5000/v2/_catalog
回复将采用以下格式:
{ "repositories": [ <name>, ... ] }
您可以通过调用以下URL来列出目录的标签:
http://YourPrivateRegistyIP:5000/v2/<name>/tags/list
{ "name": <name>, "tags": [ <tag>, ... ]
}
你可以在docker注册表容器中运行这个命令:
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
使用manifest值运行下面给出的命令:
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
在docker registy容器中运行以下命令:
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
4ngedf3f2#
目前,您无法在没有外部工具的情况下从Docker注册表中删除镜像。最简单的方法是使用this脚本来执行此操作,请记住它确实需要停机。
nqwrtyyt3#
你可以使用dredge-tool(https://github.com/anthonyoteri/dredge/releases)来完成这个任务。
dredge my.private.registry:5000 delete myimage mytag
3条答案
按热度按时间ar5n3qh51#
我对其他问题也给出了同样的答案。或许对你有用。
我也遇到了同样的问题,我的注册表,然后我尝试了下面列出的解决方案从博客页面。有时灵
第一步:目录列表
您可以通过调用以下URL来列出您的目录:
回复将采用以下格式:
第二步:列出相关目录的标签
您可以通过调用以下URL来列出目录的标签:
回复将采用以下格式:
}
第三步:列出相关标签的manifest值
你可以在docker注册表容器中运行这个命令:
回复将采用以下格式:
使用manifest值运行下面给出的命令:
第四步:删除已标记的清单
在docker registy容器中运行以下命令:
下面是我的config.yml
4ngedf3f2#
目前,您无法在没有外部工具的情况下从Docker注册表中删除镜像。最简单的方法是使用this脚本来执行此操作,请记住它确实需要停机。
nqwrtyyt3#
你可以使用dredge-tool(https://github.com/anthonyoteri/dredge/releases)来完成这个任务。