docker-compose:记录到持久文件

ken*_*eho 7 docker docker-compose

我知道 docker-compose 默认日志记录到由docker inspect --format='{{.LogPath}}' my_container. 一旦我杀死容器,这个文件就消失了。当我频繁部署新版本的映像时,我丢失了很多日志条目。

我想做的是将容器的日志条目存储在持久日志文件中,就像常规 Linux 进程使用的那样。我可以让我的部署脚本执行类似的操作,但我认为有一种不太黑客的方法可以执行此操作:

docker-compose logs -t -f >> output-`date +"%Y-%m-%d_%H%M"`.log'
Run Code Online (Sandbox Code Playgroud)

一种选择是配置 docker-compsose 以记录到 syslog,但目前我想记录到专用文件。

其他人如何处理持久日志记录的问题?

Deb*_*rty 1

所以docker有一个概念叫logging-drivers。https://docs.docker.com/config/containers/logging/configure/#supported-logging-drivers

默认是您提到的文件。执行此操作的理想方法是将 传递--log-driver <driver-name>给您的运行命令。然后在同一台机器上有另一个进程拾取这些数据并将其推送到中央日志系统。

我猜其中最受欢迎的是fluentdor splunk。但你也可以选择写入json或journald。

这些的 docker 手册如下