我在 AWS EC2 上运行了一些 docker 容器,/var/lib/docker/overlay2 文件夹的磁盘大小增长非常快。
我想知道删除其内容是否安全?或者如果 docker 有某种命令可以释放一些磁盘使用量。
更新:
我实际上已经尝试过 docker system prune -a
,它回收了0Kb。
我的 /docker/overlay2 磁盘大小也远大于 docker system df
在阅读了 docker 文档和 BMitch 的回答后,我认为触摸这个文件夹是一个愚蠢的想法,我会尝试其他方法来回收我的磁盘空间。
原文由 qichao_he 发布,翻译遵循 CC BY-SA 4.0 许可协议
Docker 使用 /var/lib/docker 来存储您的图像、容器和本地命名卷。删除它可能会导致数据丢失并可能导致引擎停止运行。 overlay2 子目录专门包含图像和容器的各种 文件系统层。
要清理未使用的容器和图像,请参阅
docker system prune
。也有删除卷甚至标记图像的选项,但由于可能丢失数据,默认情况下不启用它们:修剪永远不会删除的内容包括:
docker ps
列出它们)docker diff
可见)此外,在此垃圾收集期间,docker 可能看不到在正常 docker 文件夹之外创建的任何内容。这可能来自其他一些应用程序写入此目录,或 docker 引擎的先前配置(例如,从 AUFS 切换到 overlay2,或者可能在启用用户命名空间之后)。
如果忽略此建议并且您从该文件系统中删除了像 overlay2 这样的单个文件夹会发生什么?容器文件系统由一组文件系统层组装而成,overlay2 文件夹是 docker 执行其中一些挂载的位置(当容器运行时,您将在
mount
的输出中看到它们)。在使用时删除其中一些会从正在运行的容器中删除文件系统的块,并可能会破坏从受影响的映像启动新容器的能力。有关许多可能结果之一,请参阅 此问题。要将 docker 完全刷新到干净状态,您可以删除整个目录, _而不仅仅是像 overlay2 这样的子目录_:
引擎将在完全空的状态下重新启动,这意味着您将失去所有: