Docker 删除所有悬虚镜像(name 为none , tag 为 none)

什么是 悬虚镜像

  悬虚镜像就是镜像没有仓库名或没有标签查询显示虚悬镜像,在列表中展示为 <none>:<none>

悬虚镜像 怎么来的

  有时候在构建新镜像的时候,为这个镜像打了一个已经存在的tag,此时Docker 会移除旧镜像上的tag,将这个tag 用在新的镜像上,此时旧镜像就变成了悬虚镜像, 或者构建新镜像报错时,也会生成一个悬虚镜像。

删除悬虚镜像

docker image prune

删除没有使用的镜像

  在命令docker image prune加上参数-a,可以删除没有被任何容器使用的镜像。

docker image prune -a

  输入y即可删除。

PS

docker images | grep none | awk '{print $3}' | xargs docker rmi

docker ps -a|grep "Exited" | awk '{print $1}' | xargs docker stop
docker ps -a|grep "Exited" | awk '{print $1}' | xargs docker rm
docker images|grep none|awk '{print $3}'|xargs docker rmi
# 添加定时任务,批量删除tag 为none 的镜像  ,释放磁盘空间
[root@loaclhost]:~# crontab -l
 */ * * * /usr/bin/docker rmi `docker images|grep none| awk '{print $3}'`
docker rmi $(docker images -f "dangling=true" -q)