kenneth-lin

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

docker容器日志处理

方案 A:全局配置(所有新建容器生效,/etc/docker/daemon.json)

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "20m",
    "max-file": "3",
    "compress": "true"
  }
}

含义:单个日志文件最大 20MB,最多保留 3 份,超过自动删除最旧日志,旧轮转文件自动压缩。
修改后:systemctl restart docker

方案 B:docker-compose.yml 服务内单独配置(推荐,只对当前服务生效,不影响别的容器)

services:
  app:
    image: xxx
    logging:
      driver: json-file
      options:
        max-size: "20m"
        max-file: "3"
        compress: "true"

执行 docker-compose up -d --force-recreate 重建容器生效。

应急清理(正在运行的容器,不重启服务清空日志)

⚠️ 不要直接 rm 删除 log 文件,docker 进程还持有句柄,空间不会释放!

# 清空指定容器日志
sudo truncate -s 0 /var/lib/docker/containers/<容器ID>/*.log

查看容器日志大小:

# 查看容器日志路径
docker inspect 容器ID | grep LogPath
# 看文件大小
ls -lh $(docker inspect --format='{{.LogPath}}' 容器ID)

查看实时日志

# 只实时跟踪,不输出任何历史旧日志
docker logs -f --tail=0 容器名

# 看最后300行,然后实时跟踪
docker logs -f --tail=300 容器名
posted on 2026-09-10 12:08  kenneth-lin  阅读(4)  评论(0)    收藏  举报