繁体   English   中英

如何将 docker 容器的 STDOUT 捕获到该容器外部的文件中?

[英]How can I capture STDOUT of a docker container to a file OUTSIDE of that container?

我有一个 docker 容器,当我运行它时,它会自动停止(因为应用程序崩溃)并且我无法弄清楚为什么它会崩溃,因为我找不到将 docker 应用程序的 STDOUT 捕获到主机上的文件的方法文件系统。 如果没有这个,当我的应用程序崩溃时,我的 docker 容器会关闭并自动删除,因此没有容器可以附加或从中获取日志。

我在 docker 文档中找不到有关如何解决此问题的帮助。

这有多种可能性,其中一些在评论中提到。

对我来说,为了日志记录而进行重定向甚至安装卷有点超出了 docker scope。相反,使用日志驱动程序并检查主机或中央日志系统上的日志似乎是正确的方法。

这可以通过非常简单的方式完成。 假设您要运行一个简单的 nginx 容器。

docker run -dt --name web01 -p 8080:80 docker.io/library/nginx:latest

这将按照您的帖子(容器的 STDOUT)中所述进行日志记录,可以通过docker logs进行检查。

如果你想把日志放在别处,你可以运行如下命令:

docker run -dt --name web01 --log-driver journald -p 8080:80 docker.io/library/nginx:latest

这将在 journald 中生成日志条目。

我不完全确定你想如何获得日志,但所有选项都记录在案,非常好。

https://docs.docker.com/config/containers/logging/configure/

如果这是您想要的行为,您甚至可以更改默认日志驱动程序(适用于所有容器)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM