docker-compose日志从哪里提取?

时间:2018-09-01 15:13:41

标签: docker nginx docker-compose laradock

就像大多数拒绝稀疏Docker docs page herehere的人一样,我对docker-compose logs的所作所为感到困惑。

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

从哪个文件中提取文件?

我唯一可以找到的nginx日志文件是/apps/laradock/logs/nginx/error.log,并且其中没有太多文件(所以不一样)。

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

3 个答案:

答案 0 :(得分:5)

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

至于“日志旋转”,json-file驱动程序具有一些选项,您可以将其传递给它,以限制每个日志文件的大小以及日志文件的最大数量。请参见max-sizedocumentation中的max-file

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

version: '3'

services:
  myservice:
    image: ...
    logging:
      options:
        max-file: "3"
        max-size: "50m"

答案 1 :(得分:2)

这取决于使用哪个logging driver

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

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

默认驱动程序json-file登录到:

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

Docker compose然后在docker-compose.yml中汇总每个容器的日志。

答案 2 :(得分:0)

您可能希望查看this文档。