用python脚本批量删除Docker镜像

CI系统在内网中会自动触发构建,导致docker镜像越来越多,经常把硬盘使用到没有空间。于是想着写一个脚本用来删除多余的镜像。今日有空,就写了一个脚本,共享在https://github.com/Macrame/clean-docker-image。默认保留三个版本,三个版本以前的都会删除掉。

运行脚本以后,首先分析镜像,把最新三个版本保留,以前的都加入到待删除列表中。然后真正执行删除操作。其实在这里可以加入一个询问用户是否真正要删除,输入y之后才进行删除(留给有心的小伙伴们自己完成吧).

效果如图:


用python脚本批量删除Docker镜像_第1张图片

上图是准备分析镜像,下图是真正执行删除操作。

用python脚本批量删除Docker镜像_第2张图片

这里可以看到,删除时并不是简单根据tag来删除,而是使用digests值来删除。这是因为如果一个镜像被两个仓库引用了,并且tag都已经成为时,无法删除tag为none的镜像,使用digests则可以轻松解决问题。

而对于:这种镜像,此脚本也无法删除,使用

docker rmi -f $(docker images -f dangling=true -q)
即可轻松删除。

你可能感兴趣的:(docker)