处理过大的 docker 日志

1、发现时 docker 日志已经很大了,最方便的肯定还是直接重建容器,日志也就重新初始化了

2、如果不想重建容器,那就需要找到日志文件,一种是直接清空:

truncate -s 0 your_file.log

3、另一种是截取保留最新的日志部分(保留文件最后 1GB):

# 命令说明
# stat -c %s your_file.log:获取文件大小(单位:字节)。
#/ 1048576 - 1024:将字节转换为 MB 并减去 1024MB,作为 skip 起点。
# dd:从文件尾部 1GB 开始复制 1024 个 1MB 块,写回文件头。
# truncate:将文件大小截断为 1GB。
# 需要将命令中所有 your_file.log 改为实际的日志文件名
dd if=your_file.log of=your_file.log bs=1M skip=$(( $(stat -c %s your_file.log) / 1048576 - 1024 )) seek=0 count=1024 conv=notrunc && truncate -s 1G your_file.log

4、处理完当前问题 ,为了预防未来再次发生,可以限制日志大小(需重建容器)

单个容器配置:

# 在容器运行命令中添加
# 示例
docker run -d -p 80:80 -p 443:443 \
--log-opt max-size=1g \
--name nginx nginx

全局配置(仍然只对新建容器生效):

sudo vi /etc/docker/daemon.json

添加以下配置,保存并退出:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

参考:https://cn.linux-console.net/?p=34396

https://www.cnblogs.com/BillyLV/articles/12555451.html

https://chatgpt.com/

posted @ 2025-08-08 11:18  不是豆豆  阅读(45)  评论(0)    收藏  举报
友情链接:迷途