Docker批量删除TAG为<none>的镜像
起因
一开始并没想去弄这个,只是近期Docker打开非常卡,导致我20多个容器都进不去。
算上之前折腾了并没有长期使用删除的容器,Docker里已经累计了很多无用的垃圾。
过程
知道目标就可以开动了,ssh进入后台,切换root权限后,输入指令:
docker images查看所有的镜像
docker images -f "dangling=true"查看所有标记为 none 的镜像
none镜像产生是因为新镜像与本地已有镜像重名导致的。新生成镜像的名称+版本号与本地原有镜像相同时,docker引擎会自动将名称和版本号分配给新镜像,则原来的镜像会变成none:none形式。
docker rmi $(docker images -f "dangling=true" -q)删除所有标记为none的镜像
静待程序运行结束即可,记得关闭ssh。
结尾
事实上,这个过程只为我清理了一部分的垃圾,节约了些许空间,我的Docker并没有因此变快。
一开始我也没想到去清理Docker,而是从8代平台换到了13代,最终证实并不是硬件性能问题,实际上我另一台8代平台帯载差不多的应用,依旧丝滑流畅。
背后的原因已经找到,但那是另外一件事了,下次有机会再说。
Comments