使用Docker系统日志logging驱动程序时,仅从STDERR收集

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

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

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

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

听起来像你最好的select是扔掉你不想要的输出:

 RUN someCode > /dev/null 

这将丢弃所有的输出到STDOUT(当你使用没有数组的RUN时,它使用shell来计算你的命令)并且保留STDERR。 不幸的是,如果你希望在某个地方也可以使用STDOUT,你是不幸的。 (你可以将STDOUT指向一个文件,但是你真的想开始考虑日志轮转,这将是一个很大的工作。)