Skip to content

Latest commit

 

History

History
15 lines (8 loc) · 1.18 KB

debug-docker-usage.md

File metadata and controls

15 lines (8 loc) · 1.18 KB

Debug: 容器文件系统空间占用

现象/问题

/var 目录单独分区,占用率 100%,几乎没有剩余空间,docker 无法启动。因为 docker 服务无法启动,也就无法使用 docker system df 分析工具和 prune 清理命令,在不扩展分区的前提下,如何排查并解决问题呢?

解决方案

先通过几次 du -sh * | sort -hr | head -n 10,定位到是 /var/ib/docker/overlay2/xxx 目录使用了超额存储空间,overlay2 是 docker 的文件系统目录,xxx 是文件系统的标识,表示应该是容器向内部目录写入了大量数据(如果是挂载的数据目录,就不会占用 /var/lib 分区)。

xxx 目录中,主要又是 merged 目录占据了超额空间,于是我们可以先准备一个脚本,打印所有容器的 merged dir ID,两相比较,定位到是某容器出现数据堆积。

如何恢复 docker 服务呢?可以通过 find 命令找到最大的日志文件,删除以腾出空间,便可以启动 docker 了。

最后,还需要修复数据堆积的问题,一方面,出现数据堆积的容器能否做一个堆积上限?另一方面,数据应该写入到 data 目录,而非 /tmp。