小编典典

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

all

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

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

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

docker logs container > /tmp/stdout.log

但它没有用。


阅读 128

收藏
2022-08-27

共1个答案

小编典典

无需重定向日志。

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

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

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

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

如果您重定向日志,那么您只会在重定向之前获得日志。您将无法看到实时日志。

编辑:

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

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

笔记:

仅当 docker
生成日志时才会创建此日志文件/var/lib/docker/containers/f844a7b45ca5a9589ffaa1a5bd8dea0f4e79f0e2ff639c1d010d96afb4b53334/f844a7b45ca5a9589ffaa1a5bd8dea0f4e79f0e2ff639c1d010d96afb4b53334-json.log,如果没有日志,则此文件将不存在。docker logs containername如果我们运行命令并且它不返回任何内容,它就像有时一样。在这种情况下,该文件将不可用。

2022-08-27