docker磁盘空间爆满 通过overlay2 目录名查找对应容器
- 1、docker文件系统占用分析
- 2、使用shell脚本通过overlay2 目录名查找对应容器
1、docker文件系统占用分析
du -sh /var/lib/docker/*
看到占用磁盘空间最大的目录是docker存储根目录下的overlay2目录
再查看docker存储根目录下的overlay2目录下哪个目录占用空间最大
du -s /var/lib/docker/overlay2/*|sort -rn
找出最大的这个overlay2目录的目录名是:ef129273a3f100feec4970bee90b0b83d9f1b170f6a76668eba9bdcfbf5f4ac8
下面需要使用这个目录名字符串去反向查找这个目录属于哪个容器,找到这个容器,就可以做进一步问题处理。这个容器就是导致磁盘空间爆满的罪魁祸首。
2、使用shell脚本通过overlay2 目录名查找对应容器
vi locateContainer
a=$(docker ps -aq)
echo -n "Enter the target DirectoryName to search and locate around all containers: "
read target
for i in $a
do
b=$(docker inspect $i|grep MergedDir|grep $target|wc -l)
if [ $b -ge 1 ];
then
echo 命中的容器ID是:$i
fi
done
bash locateContainer
会提示输入查询的目录名:ef129273a3f100feec4970bee90b0b83d9f1b170f6a76668eba9bdcfbf5f4ac8
然后输出容器ID:8219fe1d228c