小编典典

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

docker

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

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

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

docker logs container > /tmp/stdout.log

但它没有用。


阅读 1193

收藏
2020-06-17

共1个答案

小编典典

无需重定向日志。

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,它类似于某个时候,但什么也不返回。在这种情况下,该文件将不可用。

2020-06-17