使docker-compose logs -f只显示/ dev / stderr

时间:2018-01-09 07:41:56

标签: docker docker-compose

我有一个运行Apache2的容器,并有一些日志文件可以将输入打印到/dev/stdout/dev/stderr。运行docker-compose logs -f时,它会盲目打印stdoutstderr混合。有没有办法只显示两个中的一个?

lrwxrwxrwx 1 root root 11 Oct 10 01:22 access.log -> /dev/stdout
lrwxrwxrwx 1 root root 11 Oct 10 01:22 error.log -> /dev/stderr
lrwxrwxrwx 1 root root 11 Oct 10 01:22 other_vhosts_access.log -> /dev/stdout

理想情况下,我希望可选择在输出之间切换。我可以想象--only-stderr--only-stdout标志。我知道可能的解决方法,但我很感兴趣,如果这是原生的可能。

1 个答案:

答案 0 :(得分:0)

我明白你的意思了,我也需要做同样的事情,但显然docker-compose目前不支持它。

查看此功能请求:https://github.com/docker/compose/issues/6078


尽管您不能使用docker-compose做到这一点,但仍然可以通过跟踪特定Docker容器的日志来实现类似的目的。

  

您写了“我知道此问题的可能解决方法”,因此您可能已经知道了,但是希望它将帮助其他访问此页面的人:)

执行docker-compose up之后,列出您正在运行的容器:

docker ps

复制给定容器的名称并阅读其日志:

docker logs NAME_OF_THE_CONTAINER -f

仅阅读错误日志

docker logs NAME_OF_THE_CONTAINER -f 1>/dev/null

仅阅读访问日志

docker logs NAME_OF_THE_CONTAINER -f 2>/dev/null