我知道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,但暂时我想登录到专用文件。
其他人如何处理持久日志记录问题?
答案 0 :(得分:1)
因此docker有一个称为日志记录驱动程序的概念。 https://docs.docker.com/config/containers/logging/configure/#supported-logging-drivers
默认值为您提到的文件。理想的方法是将--log-driver <driver-name>
传递给您的运行命令。然后在同一台计算机上进行另一个处理,以将其收集并推送到您的中央日志记录系统。
我猜其中最流行的是fluentd
或splunk
。但是,您也可以选择写入json或记录日志。
这些的docker手册在下面