Dockerregistry垃圾回收

最近开始使用Dockerregistry作为企业Docker镜像的中心。 几个星期后,我发现dockerregistry已经吃掉了所有的磁盘空间:(

我们为开发人员自动部署,每次从GIT提取最新的主文件,然后创builddocker映像并将其推送到我们的registry中。 图片名称和图片标签始终相同。 所以我期望在Dockerregistry中新的图像被覆盖,但实际上所有这些图层都被收集在… / docker / registry / v2 / blobs / sha256 /文件夹中。

内置垃圾收集器没有帮助: / usr / bin / docker execregistry/ bin /registry垃圾收集/etc/docker/registry/config.yml 。 它不会删除未使用的图层,并产生smth.like: 标记为1204个斑点,符合删除的0个blob

我们只有一个docker图像。 但是它经常被推到registry中。 如何只保留最新版本的图像?

registry版本是2.4.0

要强制垃圾收集器删除未标记的图像,必须删除一些清单文件。 我有一个脚本,自从Docker Registry 2.4.0以来,我一直在使用这个脚本,并且仍然可以使用2.6.1:

https://github.com/ricardobranco777/clean_registry.sh