docker磁盘占用瞬间变大问题解决
切到容器文件系统目录
cd /var/lib/docker/overlay2/
查找磁盘占用量大的容器目录
du -sh * | grep G
1.2G 95ea9025f6723e783be5691ca26fbd849e6747870c64cacd53db4b2c3c8e4646
61G b9249ef4c19bb13e6b8a0152d13c94e4958f6609b326ae66f949093419b5df1b
看一下里面都是什么文件
ls -lh b9249ef4c19bb13e6b8a0152d13c94e4958f6609b326ae66f949093419b5df1b
total 61.2G
-rw------- 1 root root 44M Nov 12 23:07 core.988
-rw------- 1 root root 44M Nov 12 23:07 core.991
-rw------- 1 root root 38M Nov 12 23:07 core.994
-rw------- 1 root root 44M Nov 12 23:07 core.997
……
大量的core Dump文件,说明应用有问题,但不知道因为什么,先复制一下最新的几个到备份目录,后续准备拿来分析
查找该目录被那个容器使用
docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}'| grep "b9249ef4c19bb13e6b8a0152d13c94e4958f6609b326ae66f949093419b5df1b"
50882, /k8s_fluent-bit_fluent-bit-bj4r5_kubesphere-logging-system_19be828e-d484-456f-b594-9bce78c3f235_1, /var/lib/docker/overlay2/b9249ef4c19bb13e6b8a0152d13c94e4958f6609b326ae66f949093419b5df1b/work
上方标红的那一段是容器名,这个容器是k8s向es发送日志用的,DaemonSet类型,不影响业务,可以操作
先停止容器
docker stop k8s_fluent-bit_fluent-bit-bj4r5_kubesphere-logging-system_19be828e-d484-456f-b594-9bce78c3f235_1
再删除容器
docker rm k8s_fluent-bit_fluent-bit-bj4r5_kubesphere-logging-system_19be828e-d484-456f-b594-9bce78c3f235_1
注意:一定要先停止,再删除,不要restart重启,因为重启不会释放磁盘空间
由于是DaemonSet控制器管理的容器,删除后应该会自动重建,检查一下
docker ps | grep fluent-bit
7515e36a77c2 4963c2c07dd7
"/fluent-bit/bin/flu…" 10 seconds ago Up 10 seconds
k8s_fluent-bit_fluent-bit-bj4r5_kubesphere-logging-system_19be828e-d484-456f-b594-9bce78c3f235_2
能看到新的容器已经启动
此时再检查下磁盘占用
du -sh * | grep G
1.2G 95ea9025f6723e783be5691ca26fbd849e6747870c64cacd53db4b2c3c8e4646
# 能看到61G的那个目录已经删除了