docker 记录 filebeat > file.log 不工作

docker logs filebeat > file.log don't work

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

$ docker logs filebeat > filebeat.log

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

如果我尝试:

$ docker logs logstash > logstash.log

我没有看到控制台的日志,但文件充满了日志行。

使用的OS是:Ubuntu 19.04

您应该 运行 带有 -t 标志的容器,这将为容器分配 pseudo-tty。示例:

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

docker logs test > test.txt

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

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

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

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

 docker logs filebeat > filebeat.log 2>&1