如何获得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。
那么没有-t
的docker 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