为什么/var/lib/docker/overlay2太大,重启解决



我在docker中运行gzip.c的代码优化器,在这个过程中overlay变得无限大,吞噬了我的磁盘。

root@id17:/var/lib/docker/overlay2/fe6987bf6e686e771ba7b08cda40aa477979512e182ad30120db037024638aa0# df -h
Filesystem      Size  Used Avail Use% Mounted on
...
/dev/sda5       245G  245G     0 100% /
...
overlay         245G  245G     0 100% /var/lib/docker/overlay2/fe6987bf6e686e771ba7b08cda40aa477979512e182ad30120db037024638aa0/merged

通过使用du -h --max-depth=1,我发现是diffmerged消耗了我的磁盘(是吗?)

root@id17:/var/lib/docker/overlay2/fe6987bf6e686e771ba7b08cda40aa477979512e182ad30120db037024638aa0# du -h --max-depth=1
125G    ./diff
129G    ./merged
8.0K    ./work
254G    .

然而,当我重新启动dockersystemctl restart docker时,它恢复正常。

root@eb9bf52aa3a3:/# df -h
Filesystem      Size  Used Avail Use% Mounted on
overlay         245G  190G   43G  82% /
...
/dev/sda5       245G  190G   43G  82% /etc/hosts
...
root@id17:/var/lib/docker/overlay2/fe6987bf6e686e771ba7b08cda40aa477979512e182ad30120db037024638aa0# du -h --max-depth=1
125G    ./diff
129G    ./merged
8.0K    ./work
254G    .

已经出版好几次了,我不能继续工作了。所以我真的很想知道我怎么才能摆脱这个问题。真的谢谢你:-)

如果docker文件系统正在增长,这通常表示容器日志,或者容器中的文件系统更改。您可以在docker logs中看到日志,在docker diff中显示文件系统更改。因为你看到的是一个很大的diff文件夹,所以应该是后者。

这些文件系统更改将在容器重新启动后继续存在,当容器被移除并替换为新容器时,它们将被清除。因此,如果重新启动容器解决它,我怀疑是您的应用程序正在删除磁盘上的文件,但仍然有文件句柄向内核打开,可能仍在写这些文件句柄。

另一个选项是停止或启动你的应用程序正在删除文件。

相关内容

  • 没有找到相关文章

最新更新