我知道docker-compose默认日志记录到docker inspect --format='{{.LogPath}}' my_container定义的文件中。我杀死容器后,该文件就消失了。当我频繁部署镜像的新版本时,我丢失了许多日志条目。

我想做的是将容器的日志条目存储在持久日志文件中,就像常规的Linux进程所使用的一样。我可以让我的部署脚本执行以下操作,但是我认为这样做的方式不那么简单:

docker-compose logs -t -f >> output-`date +"%Y-%m-%d_%H%M"`.log'

一种选择是将docker-compsose配置为登录到syslog,但是暂时我想登录到专用文件。

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

最佳答案

因此,docker具有一个称为日志记录驱动程序的概念。 https://docs.docker.com/config/containers/logging/configure/#supported-logging-drivers

默认值为您提到的文件。理想的方法是将--log-driver <driver-name>传递给您的run命令。然后在同一台计算机上进行另一个处理,以将其收集并推送到中央日志记录系统。

我猜其中最流行的是fluentdsplunk。但是您也可以选择写入json或日记。

这些的 docker 手册如下

  • Splunk-https://docs.docker.com/config/containers/logging/splunk/
  • Fluentd-https://docs.docker.com/config/containers/logging/fluentd/
  • 关于docker - docker-compose:登录到永久文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52852961/

    10-17 00:01