如何将Docker容器日志重定向到单个文件?

我想将我的docker容器的所有日志重定向到单个日志文件以进行分析。我试过了

docker logs container > /tmp/stdout.log 2>/tmp/stderr.log

但这使登录两个不同的文件。我已经试过了

docker logs container > /tmp/stdout.log

但它没有用。

回答:

无需重定向日志。

Docker默认将日志存储到一个日志文件中。要检查日志文件路径,请运行命令:

docker inspect --format='{{.LogPath}}' containername

/var/lib/docker/containers/f844a7b45ca5a9589ffaa1a5bd8dea0f4e79f0e2ff639c1d010d96afb4b53334/f844a7b45ca5a9589ffaa1a5bd8dea0f4e79f0e2ff639c1d010d96afb4b53334-json.log

打开该日志文件并进行分析。

如果您重定向日志,则只能在重定向之前获取日志。您将无法看到实时日志。

要查看实时日志,可以在以下命令中运行

tail -f `docker inspect --format='{{.LogPath}}' containername`

/var/lib/docker/containers/f844a7b45ca5a9589ffaa1a5bd8dea0f4e79f0e2ff639c1d010d96afb4b53334/f844a7b45ca5a9589ffaa1a5bd8dea0f4e79f0e2ff639c1d010d96afb4b53334-json.log仅当docker生成日志(如果没有日志)时,才会创建此日志文件,然后该文件将不存在。如果我们运行命令docker

logs containername,它类似于某个时候,但什么也不返回。在这种情况下,该文件将不可用。

以上是 如何将Docker容器日志重定向到单个文件? 的全部内容, 来源链接: utcz.com/qa/432541.html

回到顶部