`docker-compose logs` 从哪里提取?
Where does `docker-compose logs` pull from?
像大多数对稀疏 Docker docs page here and here 投反对票的人一样,我对 docker-compose logs
的做法感到困惑。
当我 运行 cd /apps/laradock/ && docker-compose logs -f nginx
时,我看到从很多天前到现在的很长的输出。
从哪个或哪些文件中提取?
我能找到的唯一 nginx 日志文件是 /apps/laradock/logs/nginx/error.log
,里面的内容不多(所以不一样)。
有没有办法 "log rotate" 或以其他方式确保我不会在日志记录上花费超过一定数量的磁盘?
使用默认日志记录驱动程序 json-file,您的日志存储在 /var/lib/docker/containers/<container-id>/
中。请注意,此处记录的是来自容器 PID 1 的 stdout 和 stderr 的输出。
至于"log rotate",json-文件驱动程序有一些选项可以传递给它来限制每个日志文件的大小,以及日志文件的最大数量。请参阅 max-size
和 documentation 的 max-file
。
使用 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.
中每个容器的日志
像大多数对稀疏 Docker docs page here and here 投反对票的人一样,我对 docker-compose logs
的做法感到困惑。
当我 运行 cd /apps/laradock/ && docker-compose logs -f nginx
时,我看到从很多天前到现在的很长的输出。
从哪个或哪些文件中提取?
我能找到的唯一 nginx 日志文件是 /apps/laradock/logs/nginx/error.log
,里面的内容不多(所以不一样)。
有没有办法 "log rotate" 或以其他方式确保我不会在日志记录上花费超过一定数量的磁盘?
使用默认日志记录驱动程序 json-file,您的日志存储在 /var/lib/docker/containers/<container-id>/
中。请注意,此处记录的是来自容器 PID 1 的 stdout 和 stderr 的输出。
至于"log rotate",json-文件驱动程序有一些选项可以传递给它来限制每个日志文件的大小,以及日志文件的最大数量。请参阅 max-size
和 documentation 的 max-file
。
使用 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.
中每个容器的日志