文章

docker日志保留策略设置

docker日志保留策略设置

docker日志保留策略设置

默认策略

默认情况下,docker使用json-file日志驱动,并且没有设置日志保留时间。 这意味着容器日志会一直保留在宿主机上,直到容器被删除或手动清理。如果不对日志进行限制,可能会导致磁盘空间被耗尽。

配置参数说明

  • log-driver: 指定日志驱动,默认json-file,此外还有syslog、journald等
  • max-size:指定单个日志文件的最大大小(例如10m表示10MB)
  • max-file:指定可以保留的最大日志文件数量(例如3表示最多保留3个日志文件)

单个容器设置

配置例

1
2
3
4
5
6
docker run -d \
    --name my_container \
    --log-driver=json-file \
    --log-opt max-size=10m \
    --log-opt max-file=5 \
    my_image

全局设置

修改docker守护进程配置文件/etc/docker/daemon.json,添加以下内容。这将影响所有容器的日志行为,除非它们显式覆盖了这些设置。

1
2
3
4
5
6
7
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

修改后需重启docker引擎sudo systemctl restart docker

日志目录

docker容器的日志默认情况下存储在宿主机上的/var/lib/docker/containers/<container-id>/目录中,对应的日志文件通常是container-logs/<container-id>-json.log

本文由作者按照 CC BY 4.0 进行授权