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:

posted @ 2022-09-19 17:33  炎黄子孙,龙的传人  阅读(1525)  评论(0编辑  收藏  举报