Docker 日志太多?磁盘爆了?一篇教你搞定容器日志问题
作者:域名 来源:域名 浏览: 【大中小】 发布时间:2025-11-05 07:09:38 评论数:
今天分享一下如何处理Docker日志的日志问题。

一、太多题Docker日志好坑
Docker 默认使用的磁盘是 json-file 日志驱动。日志会一直写,爆篇一直写,教搞一直写……没有限制、定容没有轮转、器日没有清理!高防服务器志问
日志默认位置:
复制/var/lib/docker/containers/<container-id>/<container-id>-json.log1.当你发现它时,日志可能已经:
占了几十个 G吃满了磁盘服务都挂了!太多题二、磁盘如何处理日志问题
主要通过日志轮询方式处理。爆篇下面介绍三种方式设置日志轮询
1. 运行容器时设置轮转策略(推荐) 复制docker run -d \ --name myapp \ --log-driver json-file \ --log-opt max-size=10m \ --log-opt max-file=3 \ myapp:latest1.2.3.4.5.6.参数解释:
max-size=10m:单个日志文件最大 10MBmax-file=3:最多保留 3 个轮转文件(最多 30MB)容器总日志控制在 30MB 内,教搞绝不爆炸!定容
2. 修改 Docker 配置该配置适用于所有容器。器日
编辑配置文件 /etc/docker/daemon.json:
复制{ "log-driver": "json-file", "log-opts": { "max-size": "10m", "max-file": "5" } }1.2.3.4.5.6.7.
重启 Docker 服务:
复制systemctl restart docker1.注意:只对之后创建的容器生效!
3. 正在运行的云南idc服务商容器你可以这样快速清理日志(生产环境慎用!):
复制echo "" > $(docker inspect --format={{.LogPath}} <container-id>)1.或者更稳一点:
docker stop 停掉容器docker rm 删除容器使用轮转参数重新 run容器4. 禁用日志输出这个操作慎用,有可能影响应用运行,而且不方便后续排查
复制docker run --log-driver=none 容器名1. 5. 日志快速清理仅推荐在磁盘告急时临时使用!
复制find /var/lib/docker/containers -name *-json.log -exec truncate -s 0 {} \;1.三、实战建议
根据不同场景推荐配置值。
场景
建议参数
开发环境
max-size=5mmax-file=3
测试环境
max-size=10mmax-file=5
生产环境
max-size=50mmax-file=10
Docker 日志默认设置太坑,一定要手动配置!
最佳实践:
用 json-file + max-size + max-file修改 daemon.json 设置全局默认老容器要么清理日志,要么重启带轮转参数企商汇