docker 删除所有未运行的容器
docker 删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)
方法一
# 显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID,
sudo docker ps -a|grep Exited|awk '{print $1}'
# 查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器
sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`
方法二
# 删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)
sudo docker rm $(sudo docker ps -a -q)
方法三
#根据容器的状态,删除Exited状态的容器
sudo docker rm $(sudo docker ps -qf status=exited)
方法四
# Docker 1.13版本以后,可以使用 docker containers prune 命令,删除孤立的容器。
sudo docker container prune
# 删除所有镜像
sudo docker rmi $(docker images -q)
附:美元符的用法
Shell脚本最让人头疼的地方就是诡异的语法以及鬼画符一般的特殊符号。
这里总结了一下笔者经常见到的美元符的用法:
$? :上个已执行命令的退出状态码,0~125 之间,0 即正常退出。
$# :传递给脚本的参数数量。
$@ 或 $* :以一个字符串保存传给脚本的所有参数。
$0 :脚本本身的名字,如有必要,使用时可结合 ‘basename’ 指令。
$1~9 :传给脚本的参数,分别对应第几个参数。
${大于等于10的数字}:因为$1~9只能处理9个参数,大于9个时,需要加一个花括号。
$() :执行括号内的命令。
$[ operation ]:美元符+方括号,执行数学表达式,这样就不用担心shell会误解乘号或其他特殊符号。
${} :变量取值,同 $+变量。
参考资料:
Richard Blum 等. Linux命令行与脚本编程大全. 北京:人民邮电出版社,2016.8
ref: