Docker overlay2 占用大量磁盘空间处理方法

在使用 docker 时,往往会出现磁盘空间不足,导致该问题的通常原因是因为 docker 中部署的系统输出了大量的日志内容。

此时,可通过手动或定时任务进行清除。

针对 / var/lib/docker/overlay2 空间占用很大网上提供了很多解决方案,其中有些误导的说法需要去迁移路径等操作。其实磁盘空间的占用和 overlay 没关系(它的 usage 和真实的 disk usage 相同),它只是一个 docker 的虚拟文件系统,真实的文件系统是前者 / dev/vda1, 可以看到路径所指为根目录,所以你要去找是哪里出现了垃圾。

通常情况下与 overlay2 的同级目录下会有如下的目录:

builder buildkit containerd containers image network overlay2 plugins runtimes swarm tmp trust volumes
[root@imotao docker]# ls builder buildkit containerd containers image network overlay2 plugins runtimes swarm tmp trust volumes

[root@imotao docker]# ls
builder  buildkit  containerd  containers  image  network  overlay2  plugins  runtimes  swarm  tmp  trust  volumes

今天群里有位老哥说到,自己的网站才搭建几天,怎么就进不去了(如下图所示错误)

Docker overlay2 占用大量磁盘空间处理方法

随后我让他df看看,好家伙,磁盘满了

Docker overlay2 占用大量磁盘空间处理方法

随后远程查看了老哥的服务器发现,只有一个系统盘(C盘),且所有的应用程序都是在Docker上运行,再加上开了日志,因此可知,满是很正常的

回归正题,而往往占用大量空间的日志文件位于 containers 下,该目录下存在如下目录:

[root@imotao containers]# ls 123ace927dc96745bac8ae09d0feddbdef853ff089c831bc80547b2d1115b0ac 635619a5ce22b551c5c75095b8b01647b9a02c839be64cd465e1542bfbec8ee6 a979b62fc10ab0ac54af4799d40c2c5865099883ff124012328ab3a8587c1dda

在目录中会存在以目录名为前缀,以 “-json.log” 为后缀的目录文件。使用如下命令会看到该文件的大小:

ll -h

然后可使用如下命令对该文件的内容进行清理:

cat /dev/null > *-json.log
cat /dev/null > *-json.log
cat /dev/null > *-json.log

清理完成可不重启服务,但如果允许建议重启一下 docker 服务。

在此执行 df -h 命令之后,你会发现 overlay2 所占的磁盘空间已经减小。

结果

Docker overlay2 占用大量磁盘空间处理方法

原创文章,作者:陌涛,如若转载,请注明出处:https://imotao.com/8451.html

(0)
陌涛的头像陌涛
上一篇 2024年3月26日 下午8:20
下一篇 2024年4月1日 上午12:23

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据