游客发表

Docker 日志太多?磁盘爆了?一篇教你搞定容器日志问题

发帖时间:2025-11-04 19:30:21

今天分享一下如何处理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. 正在运行的b2b供应网容器

你可以这样快速清理日志(生产环境慎用!):

复制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 设置全局默认老容器要么清理日志,要么重启带轮转参数源码库

    热门排行

    友情链接