某天早上收到反馈,称某个环境无法正常登录。我立即上线检查,发现业务容器运行正常,但其中一个节点磁盘使用率显示爆红。登录该节点后确认磁盘空间已满。

首先尝试在根目录下统计各目录的磁盘占用情况。由于该服务器主要运行Docker服务,决定优先排查docker的containers目录(该目录会显示当前运行的所有容器)。检查发现containers目录占用了35G空间,接着进一步分析其子目录中占用空间较大的容器。

进入占用空间较大的容器目录后,通过ls -lh命令查看,发现存在一个xxxx-json.log文件占用极大空间。这是Docker日志文件的临时日志文件,可以通过cat /dev/null > xxxx-json.log命令进行清空处理。

清理完成后再次检查磁盘使用情况,确认空间已成功释放。

针对此类问题,需要从根本上解决容器日志不断累积导致磁盘空间耗尽的情况。这通常是由于初始部署时未正确配置Docker日志参数所致,建议在daemon.json文件中进行以下配置:
cat /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "1024m",
"max-file": "3"
}
}
此外,还可以通过以下方法释放磁盘空间:
- 清理无用镜像和容器:使用
docker images和docker ps命令查看当前系统中的镜像和容器,通过docker rmi和docker rm命令删除不需要的资源
- 定期维护日志文件:容器日志会持续增长,需要定期清理或设置合理的日志大小和保留策略,避免日志文件过度积累
|