首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在远程执行的命令中从码头容器获取实时的stdout。

在远程执行的命令中从码头容器获取实时的stdout。
EN

Unix & Linux用户
提问于 2017-04-18 13:59:04
回答 2查看 2.3K关注 0票数 2

我正在尝试从我正在码头容器中运行的命令中获取实时标准输出。但是,我需要通过从另一个主机运行的远程命令来执行此操作。

当我在docker主机上时,我可以使用-it运行我的docker命令,并获得所需的实时输出。但是,我有一个约束,我必须远程运行命令,使以前的解决方案毫无用处。我不能使用-t,因为它运行一个基于$TERM的伪终端,这个伪终端与远程命令不存在,因为根本没有终端。

我还尝试使用-d运行docker命令,以便在后台和docker logs -f <container>中运行它,但是在进程结束时仍然会立即给出输出。

如果这属于另一个堆栈,任何解决方案或建议都会得到赞赏和纠正。

EN

回答 2

Unix & Linux用户

发布于 2017-04-19 14:29:37

这是从码头的github的一些帮助中得出的。我没有提到我试图在容器中运行python脚本,但我认为它并不重要。

这实际上不是码头问题,而是python问题。我了解到Docker已经提供了实时的标准输出。Python将所有的stdout保存在它的缓冲区中,并且在脚本完成之前不会刷新。除非代码在带有-t的终端中运行。

在docker命令中,我所需要的只是用python -u <script>调用脚本,以防止python缓冲stdout。

票数 2
EN

Unix & Linux用户

发布于 2017-04-18 14:05:44

好吧,为什么不用ELK堆栈和log芽一起使用呢?您可以从所有的码头容器中获得实时日志,另外,您还可以在日志和其他许多很酷的东西中搜索。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/359689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档