我将如何在我的主机中启动一个应用程序以便从正在运行的 docker 容器中读取文件和标准输出?
基本上我想这样做:
docker start containerid
./myapp // This app will *somehow* have access files and stdout generated by the container I just stared.
我该怎么做呢?更具体地说,我想去哪里;我想读取 docker 容器的日志和标准输出,并在其他地方处理这些日志。
我也愿意创建另一个 docker 容器,它可以从另一个容器中读取文件和标准输出,但我不知道这是否可能。
最佳答案
docker容器启动的进程的stdout可通过docker logs $containerid
command获得(使用 -f
让它永远运行)。另一种选择是直接通过 docker remote API 流式传输日志。 .
对于访问日志文件(只有在必须时,考虑记录到标准输出或其他标准解决方案,如 syslogd),您唯一的实时选项是 configure a volume (就像 Marcus Hughes 建议的那样)因此日志存储在容器外部,可用于从主机或其他容器进行处理。
如果您不需要实时访问日志,you can export the files (以 tar 格式)使用 docker export
关于logging - 如何从正在运行的 Docker 容器中读取文件和标准输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24621067/