使用一段时间Docker后会产生很多临时镜像(悬虚镜像),数量还少勉强手动逐条删除,一段时间不清理数量多起来删除很费时,所以想批量删除。可以利用linux三剑客命令awk
- awk
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 
使用方法   : awk ‘{pattern + action}’ {filenames}
编程时用法 : command1 | awk {print $1}
输出结果第一列数据
1
   | docker images | awk '{print $1}'
  | 
 
再配合grep查找关键字,可以用正则表达式,xargs结果作为参数给docker rmi,删除指定标签的镜像
1
   | docker images | awk '{print $1}' | grep mysql | xargs -t docker rmi
  | 
 
1
   | docker ps -a | e grep -v 'mysql|post|kiban|elas|mongo' | awk '{print $1}' | xargs -t docker rm
  | 
 
有些时候会有些<none>的镜像,如下List-3,可能是临时产生的,删除这种镜像,直接用上面的是不行的
这种,注意awk中要用\t隔开,后面的awk才能得到我们想要的$2
1
   | docker images | awk '{print $1"\t"$2"\t"$3}' | grep "<none>" | awk '{print $3}' | xargs -t docker rmi
  | 
 
或者下面这种
1
   | docker images | grep "<none"| awk '{print $3}'|xargs -t docker rmi
  | 
 
1
   | docker ps -a | grep -E 'Exited|Created' | awk '{print $1}' | xargs -t docker rm
  | 
 
- 清理无用镜像
它支持的子命令有:
-a, --all : 删除所有没有用的镜像,而不仅仅是临时文件 
-f, --force : 强制删除镜像文件,无需弹出提示确认 
 
- 清理所有无用volume、image、container、network
注意:慎用,删除所有不在使用的资源