如何将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