我们将私有(private)docker注册中心更新为正式的Registry 2.0。这个版本现在可以删除由#标签标识的docker镜像(请参阅https://docs.docker.com/registry/spec/api/#deleting-an-image),但是我仍然看不到清理旧镜像的方法。
由于我们的CI服务器不断产生新图像,因此,我需要一种方法来从私有(private)注册表中删除所有不再由命名标签标识的图像。
如果没有内置的方法可以实现此目的,那么我认为自定义脚本可能会起作用,但是我也看不到v2 API方法来列出图像的所有存储的标签。
如何保持我的私有(private)注册表清洁?有什么提示吗?
最佳答案
删除图像(您可以保留10个最新版本,就像在CI中一样)可以通过三个步骤完成:
REGISTRY_STORAGE_DELETE_ENABLED: "true"
并将其传递给docker-registry Registry.py可以从下面的链接下载,它还允许列出图像,标签和图层,以及删除特定的图像和/或标签。
https://github.com/andrey-pohilko/registry-cli
在执行垃圾回收之前,我的注册表文件夹是7 Gb,在执行上述步骤之后,它缩小到1 Gb。
关于docker - Docker Registry 2.0-如何删除未使用的镜像?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29802202/