我该如何在主机中启动应用程序以便从正在运行的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容器,但是我不知道这是否可行。
通过命令可以使用由docker容器启动的进程的
标准输出
(用于使其永远运行)。另一个选择是直接通过docker远程API流式传输日志。docker logs $containerid
-f
要访问日志文件(仅在必要时才考虑记录到stdout或其他标准解决方案,例如syslogd),您唯一的实时选项是配置卷(如Marcus Hughes建议的那样),以便将日志存储在容器外部并可供处理来自主机或另一个容器。
如果不需要实时访问日志,可以使用以下命令导出文件(以tar格式)docker export
问题内容: 从标准输入逐行读取的Scala配方是什么?类似于等效的Java代码: 问题答案: 最直接的前瞻性的方式将只使用它的一部分。但是,这很丑陋,因为您需要检查最终的空值: 这太冗长了,您宁可使用它。 我认为将使用更漂亮的方法:
我编写docker文件是为了运行jar文件,而它并没有创建日志文件,请参阅下面的控制台是我的docker文件
我想在脚本中做的是: 列出docker主机上某些正在运行的容器 获取相应的docker-compose.yml文件位置 使用docker-compose立即重新启动相应docker-compose项目的所有容器
问题内容: 我想从命令行读取标准输入,但是在提示我输入之前,我的尝试以结束程序退出而告终。我正在寻找C#中的Console.ReadLine()等效项。 这是我目前拥有的: 问题答案: 我不确定块有什么问题 因为它可以在我的机器上使用。但是,对于下一个块,您需要一个指针,该指针指向要将输入分配给它们的变量。尝试替换为。不要使用,因为它解析内存中已有的字符串,而不是解析来自stdin的字符串。如果您
问题内容: 我实际上尝试在600毫秒的时间内完成上述操作,此后它不应允许读取,但bufferedreader的readline阻塞了。请帮助 问题答案: 您可以使用BufferedReader.available()> 0检查是否有要读取的字符。
我正在使用Docker为Mac。我正在Docker容器中运行一个基于nodejs的微服务。我想通过浏览器测试节点微服务。如何获取正在运行的docker容器的IP地址?