7

像大多数在此处和此处对稀疏的Docker 文档页面投反对票的人一样,我对所做的事情感到困惑。docker-compose logs

当我运行时cd /apps/laradock/ && docker-compose logs -f nginx,我看到从很多天前到现在的很长的输出。

那是从什么文件中提取的?

我能找到的唯一 nginx 日志文件是/apps/laradock/logs/nginx/error.log,它没有太多内容(所以不一样)。

有没有办法“日志轮换”或以其他方式确保我不会在日志记录上花费超过一定数量的磁盘?

4

2 回答 2

13

使用默认的日志记录驱动程序json-file,您的日志存储在/var/lib/docker/containers/<container-id>/. 请注意,此处记录的是容器 PID 1 的 stdout 和 stderr 的输出。

至于“日志轮换”,json-file 驱动程序有一些选项可以传递给它来限制每个日志文件的大小,以及日志文件的最大数量。请参阅max-sizemax-file文档

使用 docker-compose,您可以设置如下选项:

version: '3'

services:
  myservice:
    image: ...
    logging:
      options:
        max-file: "3"
        max-size: "50m"
于 2018-09-01T16:28:10.393 回答
5

这取决于使用哪个日志记录驱动程序

您可以使用以下命令检查为 Docker 守护程序配置了哪一个:

docker info -f '{{.LoggingDriver}}'

默认驱动程序json 文件记录到:

/var/lib/docker/containers/<container-id>/<container-id>-json.log

Docker compose 然后聚合 docker-compose.yml 中每个容器的日志。

于 2018-09-01T16:32:08.933 回答