Linux服务器空间爆满——docker的锅

379 阅读1分钟

这是我参与8月更文挑战的第2天,活动详情查看:8月更文挑战

起因

某一天,线上服务器突然登录不了,查看了错误日志,发现是说存储空间满了。内心是充满疑惑得,记得也没什么地方会大量占用存储空间。

过程

排查过程

使用命令:du -h --max-depth=1,查看当前目录下文件夹大小,之后一路路排查下去

image.png

image.png

最终发现,是这个 containers 容器文件夹占比最大 image.png

查看占空间最大的容器文件夹,发现是 个log日志文件,26.8G大 (吐血),没想到日志文件可以这么大(T_T) image.png 找到了问题所在,之后就好处理了

结论

docker容器的日志,没有限制大小,随着时间推移,日志大小开始膨胀了起来,导致主机磁盘空间满了

处理

方法

删除日志文件,但是不能用rm rf方式删除,因为该日志文件还是处于被打开状态,那么进程将仍然可以读取该文件,磁盘空间也一直被占用。

  • 但是你也可以通过rm -rf删除后重启docker

所以使用 cat /dev/null > *-json.log 命令删除

处理后结果

QAQ,存储空间释放了

image.png

为了以后方便,新建个docker日志清除脚本命令

#!/bin/sh 
echo "======== start clean docker containers logs ========"  

logs=$(find /var/lib/docker/containers/ -name *-json.log)  

for log in $logs  
        do  
                echo "clean logs : $log"  
                cat /dev/null > $log  
        done  

echo "======== end clean docker containers logs ========"

# chmod +x clean_docker_log.sh

# ./clean_docker_log.sh

参考网址

blog.csdn.net/gdsfga/arti…