docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker和k8s中批量删除不要的资源

docker和k8s中实现批量删除不要的资源

作者:醉生梦死一笑惊魂

文章介绍了在Docker和K8s中批量删除不是running状态的容器或pod的四种方法,包括根据容器状态删除Exited状态的容器、显示所有容器并过滤出Exited状态的容器、删除所有未运行的容器以及使用docker containers prune命令删除孤立的容器

经常玩Docker与K8s的朋友经常会遇到很多不是running的容器或者pod,其实这很浪费资源,下面主要介绍在Docker和K8s中批量删除不是running状态的容器或者pod。

清理exited进程

方法一

根据容器的状态,删除Exited状态的容器

docker rm $(docker ps -q -f status=exited)

方法二

显示所有的容器,过滤出Exited状态的容器,取出这些容器的ID

sudo docker ps -a|grep Exited|awk '{print $1}'

查询所有的容器,过滤出Exited状态的容器,列出容器ID,删除这些容器

sudo docker rm `docker ps -a|grep Exited|awk '{print $1}'`

或者

docker ps -a|grep Exited|awk '{print $1}'|xargs docker rm

方法三

删除所有未运行的容器(已经运行的删除不了,未运行的就一起被删除了)

sudo docker rm $(sudo docker ps -a -q)

方法四

Docker 1.13版本以后,可以使用 docker containers prune 命令,删除孤立的容器

sudo docker container prune​

清理dangling volumes

docker volume rm $(docker volume ls -qf dangling=true)

清理dangling image

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

清理MatchNodeSelector的pod

kubectl --all-namespaces  get po -o wdie | grep MatchNodeSelector |awk '{print$1}'|xargs kubectl -n kube-system delete pods

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文