自动化

批量删除容器及volume脚本示例

2020-02-19  本文已影响0人  佛系小懒

背景

本地环境下集成rancher及其他容器,由于机器性能限制,想把所有容器给清除了,然后真的要使用时,才启动相关的容器,各容器的数据卷、运行时发生变动的目录会挂在本地目录,于是就有了下面的脚本,用于对容器、volume及k8s相关配置文件目录进行清除。

脚本示例

#!/bin/bash

#删除所有容器

sudo docker rm -f$(sudo docker ps -qa)

#删除/var/etcd目录

sudo rm -rf /var/etcd

#删除/var/lib/kubelet/目录,删除前先卸载

for m in$(sudo tac /proc/mounts |sudo awk'{print $2}'|sudo grep /var/lib/kubelet);do

  echo "$m" && umount $m||true

done

sudo rm -rf /var/lib/kubelet/

#删除/var/lib/rancher/目录,删除前先卸载

for m in$(sudo tac /proc/mounts |sudo awk'{print $2}'|sudo grep /var/lib/rancher);do

  echo "$m" && umount $m||true

done

sudo rm -rf /var/lib/rancher/

#删除/run/kubernetes/ 目录

sudo rm -rf /run/kubernetes/

#删除所有的数据卷

sudo docker volume rm$(sudo docker volume ls -q)

#再次显示所有的容器和数据卷,确保没有残留

num2=`sudo docker ps -a |wc -l`

echo "sudo docker ps -a | wc -l"

echo  `sudo docker ps -a |wc -l`

num1=`sudo docker volume ls |wc -l`

echo "sudo docker volume ls | wc -l"

echo `sudo docker volume ls |wc -l`

上一篇 下一篇

猜你喜欢

热点阅读