有一天我发现之前随便开了很多容器,停止之后没有删除,用docker ps -a查看,但是我又不想手动一个一个去删除,不能把在运行的容器删除,所以随便写了一个shell,做一下笔记:
#!/bin/bash
docker ps -a|awk '{print $1}'|grep -v CONTAINER > /tmp/ps_a.txt
docker ps|awk '{print $1}'|grep -v CONTAINER > /tmp/ps.txt
ps_a_ps=`grep -F -v -f /tmp/ps.txt /tmp/ps_a.txt |sort| uniq`
for f in $ps_a_ps
do
docker rm -f $f
done
这里要用到差集的思想,除了在运行的容器,都删除。docker ps -a包含在运行。
-f :比较文件,后面一个是范文参考,但这个是交集
-v是反选。这两个参数结合起来就是差集。