像大多数低估Docker docs page here和here稀疏的人一样,我对docker-compose logs
的做法感到困惑。
当我运行cd /apps/laradock/ && docker-compose logs -f nginx
时,我看到很多天前的输出很长。
从中提取哪些文件?
我能找到的唯一的nginx日志文件是/apps/laradock/logs/nginx/error.log
,它没有多少(所以不一样)。
有没有办法“记录旋转”或以其他方式确保我在记录时不会花费超过一定数量的磁盘?
使用默认日志记录驱动程序json-file,您的日志存储在/var/lib/docker/containers/<container-id>/
中。请注意,这里记录的是从容器的PID 1输出的stdout和stderr。
对于“日志循环”,json文件驱动程序有一些选项可以传递给它以限制每个日志文件的大小和最大日志文件数。参见max-size
和max-file
的documentation。
使用docker-compose,您可以设置以下选项:
version: '3'
services:
myservice:
image: ...
logging:
options:
max-file: "3"
max-size: "50m"
这取决于使用哪个logging driver。
您可以使用以下命令检查为Docker守护程序配置的是哪一个:
docker info -f '{{.LoggingDriver}}'
默认驱动程序json-file记录到:
/var/lib/docker/containers/<container-id>/<container-id>-json.log
Docker compose然后聚合docker-compose.yml中每个容器的日志。
您可能想查看this文档。