use*_*521 93 docker docker-compose
我正在运行几个容器docker-compose
.我可以通过命令查看应用程序日志docker-compose logs
.但是,我想访问原始日志文件,例如将其发送到某个地方?它在哪里?我猜这是每个容器(内部容器?)的单独日志,但我可以在哪里找到它?
小智 151
容器的日志可以在以下位置找到:
/var/lib/docker/containers/<container id>/<container id>-json.log
Run Code Online (Sandbox Code Playgroud)
(如果使用的是json的默认日志格式)
Von*_*onC 90
您可以在docker inspect
每个容器中查看其日志的位置:
docker inspect --format='{{.LogPath}}' $INSTANCE_ID
Run Code Online (Sandbox Code Playgroud)
并且,如果您试图找出日志管理其集体大小的位置,或者调整日志记录本身的参数,您将发现以下相关内容.
修复为日志保留的空间量
Docker 1.8和docker-compose 1.4已经存在一种使用docker compose log driver和log-opt max-size 来限制日志大小的方法:
mycontainer:
...
log_driver: "json-file"
log_opt:
# limit logs to 2MB (20 rotations of 100K each)
max-size: "100k"
max-file: "20"
Run Code Online (Sandbox Code Playgroud)
在docker撰写版本为'2'的文件时,语法稍有改动:
version: '2'
...
mycontainer:
...
logging:
#limit logs to 200MB (4rotations of 50M each)
driver: "json-file"
options:
max-size: "50m"
max-file: "4"
Run Code Online (Sandbox Code Playgroud)
(请注意,在两种语法中,数字都表示为字符串,用引号表示)
docker-compose logs
未终止的可能问题
logs
如果容器已经停止,则命令不会退出要查看每个容器的日志占用多少空间,请使用以下命令:
docker ps -qa | xargs docker inspect --format='{{.LogPath}}' | xargs ls -hl
Run Code Online (Sandbox Code Playgroud)
(您可能需要sudo
之前ls
).
docker inspect <containername> | grep log
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
92496 次 |
最近记录: |