一尘不染

如何从正在运行的Docker容器中读取文件和标准输出

docker

我该如何在主机中启动应用程序以便从正在运行的Docker容器中读取文件和stdout?

本质上我想这样做:

docker start containerid   
./myapp // This app will *somehow* have access files and stdout generated by the container I just stared.

我将如何去做?更具体地说明我要在哪里进行此操作;我想读取Docker容器的日志和标准输出,并在其他地方处理这些日志。

我也愿意创建另一个可以从另一个容器读取文件和stdout的docker容器,但是我不知道这是否可行。


阅读 1301

收藏
2020-06-17

共1个答案

一尘不染

通过命令可以使用由docker容器启动的进程的
标准输出
(用于使其永远运行)。另一个选择是直接通过docker远程API流式传输日志。docker logs $containerid-f

要访问日志文件(仅在必要时才考虑记录到stdout或其他标准解决方案,例如syslogd),您唯一的实时选项是配置卷(如Marcus Hughes建议的那样),以便将日志存储在容器外部并可供处理来自主机或另一个容器。

如果不需要实时访问日志,可以使用以下命令导出文件(以tar格式)docker export

2020-06-17