5

使用 Docker 版本 18.09.5,在我输入时构建 e8ff056 和 filebeat:7.1.1(通过 elasticsearch):

$ docker logs filebeat > filebeat.log

我看到了日志,但 filebeat.log 是空的。

如果我尝试:

$ docker logs logstash > logstash.log

我看不到控制台的日志,但文件中的日志行已满。

使用的操作系统是:Ubuntu 19.04

4

2 回答 2

2

重定向 STDOUT ,>但您也可以从容器中获得 STDERR 输出。要重定向它,您可以使用:

 docker logs filebeat > filebeat.log 2> filebeat.err

或将两者发送到同一个文件:

 docker logs filebeat > filebeat.log 2>&1
于 2019-06-17T13:20:40.717 回答
0

您应该使用 -t 标志运行容器,该标志将为容器分配一个伪 tty。例子:

docker run -td --rm --name test store/elastic/filebeat:7.1.1

docker logs test > test.txt

这会将输出存储到文件中。在没有 -t 标志的情况下运行时,它只会将日志转储到终端中

于 2019-06-17T09:42:37.150 回答