如何获得docker执行标准输出如同在容器中运行命令一样冗长?

如果我使用docker的exec命令运行一个命令,如下所示:

docker exec container gulp 

它只是运行命令,但没有任何输出到我的terminal窗口。

但是,如果我真的进入容器并手动运行命令:

 docker exec -ti container bash gulp 

我看到了一大口的输出:

[13:49:57]使用gulpfile〜/ code / services / app / gulpfile.js
[13:49:57]开始'脚本'…
[13:49:57]开始“样式”…
[13:49:58]启动'emailStyles'…

我怎样才能运行我的第一个命令,仍然有输出发送到我的terminal窗口?

附注:我看到与npm install s相同的行为, forever restart s等。所以,这不是一个吞咽问题,但可能是如何docker映射的标准输出。

我怎样才能运行我的第一个命令,仍然有输出发送到我的terminal窗口?

您需要确保docker run启动与-t选项为了分配一个伪tty。
那么没有-tdocker exec仍然可以工作。

我在这里讨论docker exec -it ,它引用了“ 修复Docker TERMvariables问题 ”)

 docker@machine:/c/Users/vonc/prog$ d run --name test -dit busybox 2b06a0ebb573e936c9fa2be7e79f1a7729baee6bfffb4b2cbf36e818b1da7349 docker@machine:/c/Users/vonc/prog$ d exec test echo ok ok