docker 批量删除 none 镜像
在使用 docker images
命令的时候,经常会在列表中看到 <none>:<none>
的镜像。
这种镜像在 Docker 官方文档中被称作 dangling images,指的是没有标签并且没有被容器使用的镜像。
当 docker build
或者 docker pull
新镜像的时候,如果之前已经存在了,涉及到镜像版本更新的话,那么之前的镜像就变成了临时镜像,也就是 <none>:<none>
镜像。
删除 dangling 镜像:
docker image prune
或者:
docker rmi $(docker images -f "dangling=true" -q)
如果镜像被容器引用了,是不能直接删除的,需要先删除容器。
# 删除容器
docker rm $(docker ps -a | grep "Exited" | awk '{print $1}')
# 删除 images
docker rmi $(docker images | grep "none" | awk '{print $3}')
或者:
docker ps -a | grep "Exited" | awk '{print $1}'| xargs docker rm
docker images | grep none | awk '{print $3}'| xargs docker rmi
推荐阅读:
- 计算机经典书籍(含下载方式)
- 技术博客: 硬核后端技术干货,内容包括 Python、Django、Docker、Go、Redis、ElasticSearch、Kafka、Linux 等。
- Go 程序员: Go 学习路线图,包括基础专栏,进阶专栏,源码阅读,实战开发,面试刷题,必读书单等一系列资源。
- 面试题汇总: 包括 Python、Go、Redis、MySQL、Kafka、数据结构、算法、编程、网络等各种常考题。