使用Docker syslog日志记录驱动程序时,仅从STDERR收集

时间:2015-06-05 11:46:11

标签: docker syslog

我们使用syslog驱动程序运行Docker容器,如下所示:

docker run -d --name <<container_name>> --log-driver syslog <<image_name>>

这使得Docker守护程序可以将来自STDOUT和STDERR的消息转发到syslog。有没有办法让我只选择STDOUT或只选择STDERR?我检查了“-a”标志,但是当与“-d”一起使用时它不起作用 - 这对我们来说是必不可少的。我检查了这个问题[https://github.com/docker/docker/issues/7440],但似乎是关于docker logs命令,这在我们的情况下是不适用的(当使用syslog驱动程序时)。

在后台运行的容器中使用syslog日志驱动程序时,有没有办法实现选择性转发?

1 个答案:

答案 0 :(得分:0)

听起来你最好的选择是抛弃你不想要的输出:

RUN someCode > /dev/null

这将丢弃STDOUT的所有输出(当你使用没有数组的RUN时,它使用shell评估你的命令)并单独留下STDERR。不幸的是,如果你希望STDOUT也可以在某个地方使用,那你就不走运了。 (你可以将STDOUT指向一个文件,但是你真的想开始考虑日志轮换,这需要做很多工作。)