我知道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命令。然后在同一台计算机上进行另一个处理,以将其收集并推送到中央日志记录系统。
我猜其中最流行的是fluentd
或splunk
。但是您也可以选择写入json或日记。
这些的 docker 手册如下
关于docker - docker-compose:登录到永久文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52852961/