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

docker exec container gulp

它仅运行命令,但没有任何输出到我的终端窗口。

但是,如果我实际上进入容器并手动运行命令:
docker exec -ti container bash
gulp

我看到了gulp的输出:



如何运行我的第一个命令,仍然将输出发送到终端窗口?

旁注:我发现npm installforever 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/

10-11 23:20
查看更多