现象:运行系统时,登录等待。
原因:服务器磁盘空间占满。(由于日志)
解决方案:增加日志管理机制。
下面介绍具体现象及解决方案。
执行:df -h 发现磁盘占满

日志默认位置在 /var/lib/docker/containers/+容器id路径下面的 containeid-json.log 文件中。
执行命令 du -sh 看到log文件非常大。
一、删除大文件
cd 到对应目录,执行rm -rf containeid-json.log文件。
二、关闭正在运行的容器,如:redis
docker stop redis
三、创建容器
docker run增加如下参数,限制生成的json.log单个文件大小和保留文件个数:--log-opt max-size=100m --log-opt max-file=3
max-size 指定日志文件大小上限
max-file 指定日志文件个数
最终的效果就是,日志会持续生成 3 文件,并一直保留最新的 3 个日志文件。

四、重启容器
docker restart redis
五、查看配置是否生效
docker inspect -f '{{.HostConfig.LogConfig}}' + 容器名 查看配置是否生效
例:docker inspect -f '{{.HostConfig.LogConfig}}' redis

补充:
查询当前目录总大小可以使用du -sh,其中s代表统计汇总的意思,即只输出一个总和大小。
通过命令du -h *,可以只显示直接子目录文件及文件夹大小统计值。

查找大于100M的文件
find -type f -size +100M -print0 | xargs -0 du -h | sort -nr
df命令的英文全称即“Disk Free”,顾名思义功能是用于显示系统上可使用的磁盘空间。默认显示单位为KB,建议使用“df -h”的参数组合,根据磁盘容量自动变换合适的单位,更利于阅读。







