一、docker删除已停止的容器
1、根据容器的状态,删除Exited状态的容器
先停止容器、再删除镜像中的容器、最后删除none的镜像。执行命令如下:
docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }') #停止容器
docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }') #删除容器
docker rmi $(docker images -a| grep "none" | awk '{print $3}') #删除镜像
2、删除所有未运行的容器(删除所有停止的容器)
(已经运行的删除不了,未运行的就一起被删除了)
docker rm $(docker ps -a -q)
其他:
查询状态为:Exited的容器并删除
docker ps -a | grep "Exited" | awk '{print $1 }' //查找
docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }') //查找并删除
二、删除none的镜像
# 删除none镜像
docker rmi $(docker images | grep "none" | awk '{print $3}')
# 直接删除带none的镜像,报错了。提示先停止容器。
docker stop $(docker ps -a | grep "Exited" | awk '{print $1 }') //停止容器
docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }') //删除容器
docker rmi $(docker images | grep "none" | awk '{print $3}') //删除镜像
备注:
docker中 启动所有的容器命令
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 关闭所有的容器命令
docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 删除所有的容器命令
docker rm $(docker ps -a | awk '{ print $1}' | tail -n +2)
docker中 删除所有的镜像
docker rmi $(docker images | awk '{print $3}' |tail -n +2)
docker start $(docker ps -aq) # 启动所有容器
docker start $(docker ps -aq -f status=exited) # 启动所有状态为exited 的容器,和上面的命令效果一致
dockerrm$(docker ps-q --filter “status=exited”)
docker 清理包含字符串的容器
要清理包含特定字符串的容器,可以使用以下命令:
docker ps -a | grep "casb" | awk '{print $1}' | xargs docker stop
docker ps -a | grep "casb" | awk '{print $1}' | xargs docker rm
#清除含有casb的镜像
docker images
| grep "casb" | awk '{print $3}'| xargs docker rmi
3、docker 停止和清理包含字符串的容器
docker ps -a | grep "特定字符串" | awk '{print $1}' | xargs docker stop
docker ps -a | grep "特定字符串" | awk '{print $1}' | xargs docker rm
这里是命令的解释:
-
docker ps -a
: 列出所有容器,包括未运行的容器。 -
grep "特定字符串"
: 查找包含"特定字符串"的行。 -
awk '{print $1}'
: 打印每一行的第一个字段,通常是容器ID。 -
xargs docker rm
: 将前面命令的输出(容器ID)作为参数传递给docker rm
命令来