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