如果我使用docker的exec命令运行命令,如下所示:
docker exec container gulp
它仅运行命令,但没有任何输出到我的终端窗口。
但是,如果我实际上进入容器并手动运行命令:
docker exec -ti container bash
gulp
我看到了gulp的输出:
如何运行我的第一个命令,仍然将输出发送到终端窗口?
旁注:我发现
npm install
,forever restart
等具有相同的行为。因此,这不仅是一个大问题,而且可能与docker如何映射stdout有关。 最佳答案
您需要确保使用docker run
选项启动了-t
才能分配伪tty。
然后没有docker exec
的-t
仍然可以使用。
I discuss docker exec -it
here,它引用“Fixing the Docker TERM variable issue ”)
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
关于docker - 如何使docker exec stdout与容器中的运行命令一样冗长?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35894839/