..
调试日记:Docker Desktop 磁盘空间问题
问题
给 Docker Desktop for mac 分配了 64GB 的磁盘空间,但是一直报磁盘空间不够。我看了下 Images 跟 Containers,明显感觉已使用的空间远没达到 64GB。
docker system df
看了占用情况,也是远远低于 64GB的:
❯ docker system df
TYPE TOTAL ACTIVE SIZE RECLAIMABLE
Images 1 1 163.8kB -8551B (-5%)
Containers 1 1 4.096kB 0B (0%)
Local Volumes 10 0 89.38MB 89.38MB (100%)
Build Cache 0 0 0B 0B
调试历程
去搜索了一下,大部分都是用 docker system prune
这个方法去清理磁盘空间的,但是从 df
命令也看出来了,其实 docker system 能统计到的空间就一点点,那么这个 prune
命令就没有意义了,每次能回收的空间就一点点。
于是我怀疑是什么文件占用不在 Image、Containers 以及 Build cache 里。找了 一个方法 ssh 到 Docker Desktop 的虚拟机上。在 /var/lib/docker
下用 du -hd1 | sort -hr
发现 overlay2
目录的占用极大!
再进一步分析了 overlay2 下前几个占用大的文件,估计应该都是 nodejs 相关的文件层。很奇怪,最近没用 docker 运行 nodejs 项目(没有涉及到的 Images、Container 等),但是文件显示是几天前创建的。
处理方案
原本是增加 Docker Desktop 的磁盘空间,但是后来又决定把 overlay2 下的文件全删除了。因为是本地软件,暂时应该也不会有什么数据丢失问题。
删除后重启了一下 Docker Desktop,跑了几个 Containers,除了 Images 要重拉,暂时没发现什么大问题。 再进去虚拟机上看下 /var/lib/docker/overlay2
目录,一个文件都没有。探索暂时搁置,有机会再深入了解。