Docker overlay磁盘使用100%处理方法overlay 100%

一、问题描述

服务器上运行了几个docker容器,运行个一周就会出现overlay 100%的情况,经查找,是容器里生成了很多core.xxx的文件导致的。

二、解决方法

首先通过以下命令查看:

df -h

可以看的overlay已经100%了,进入到/var/lib/docker目录下

cd /var/lib/docker/

查看内存使用情况

du -lh --max-depth=1

可以看的主要是/overlay2目录占用的比较大,进入到该目录,继续查看内存使用情况

重复使用上面的方式,进行查找

最终查找到如下,生成了一堆的core.xxx文件

core.xxx文件可能是由于应用程序崩溃或遇到了严重错误导致的,core文件是操作系统保存应用程序崩溃时的内存转储文件,用于调试和分析问题,可以直接执行如下命令,进行删除:

rm -if core.*

删除之后,占用就立马降下来了

除了core还有日志可能有大文件,删除大的 log 文件

find /var/lib/docker/containers -name *.log
cat /dev/null > /var/lib/docker/containers/7c13f85f66043ecf660e5d9a55a678d429ce0dc93f3fe2bb88443fa2e6ab27fd/7c13f85f66043ecf660e5d9a55a678d429ce0dc93f3fe2bb88443fa2e6ab27fd-json.log

### 清理或减少 Docker Overlay2 存储驱动占用的磁盘空间 #### 了解原因 Overlay2 是 Docker 的默认存储驱动,实现了镜像层和容器层的分层存储技术。当发现 `/var/lib/docker/overlay2` 目录占用较大时,通常是因为某些挂载的目录过大或是存在不必要的文件和日志[^1]。 #### 检查并清理无用资源 为了有效释放磁盘空间,建议先检查是否有不再使用的镜像、容器、网络或其他未被利用的资源: ```bash docker system prune -a ``` 此命令会删除所有停止的容器、未使用的网络以及悬空的镜像(即没有标签也没有容器依赖的镜像)。如果希望保留正在运行的服务而不影响它们,则可以省略 `-a` 参数[^3]。 #### 处理过大的日志文件 有时大量的日志记录也会导致磁盘使用率上升。可以通过截断现有日志或将旧日志轮转到新的位置来解决问题。对于单个容器的日志清理,可执行如下命令: ```bash sudo truncate -s 0 /var/lib/docker/containers/*/*.log ``` 这将会把所有的 JSON 日志文件大小设置为零字节,从而立即腾出大量空间。不过需要注意的是这样做可能会丢失一些有用的调试信息,在生产环境中应谨慎操作[^4]。 #### 调整配置优化长期性能 为了避免将来再次遇到同样的问题,考虑调整 Docker 守护进程和服务端口上的参数,例如通过 `daemon.json` 文件指定不同的日志级别或者启用日志旋转策略;也可以尝试更换更高效的日志驱动程序如 `journald` 或者自定义路径保存日志文件[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值