如果我使用 docker 的 exec 运行命令命令,像这样:
docker exec container gulp
它只是运行命令,但没有任何内容输出到我的终端窗口。
但是,如果我真的进入容器并手动运行命令:
docker exec -ti container bash
gulp
我看到 gulp 的输出:
[13:49:57] Using gulpfile ~/code/services/app/gulpfile.js
[13:49:57] Starting 'scripts'...
[13:49:57] Starting 'styles'...
[13:49:58] Starting 'emailStyles'...
...
如何运行我的第一个命令并仍然将输出发送到我的终端窗口?
旁注:我看到与
npm install
相同的行为s, forever restart
s 等。所以,这不仅仅是一个吞咽问题,而且可能与 docker 如何映射标准输出有关。
最佳答案
How can I run my first command and still have the output sent to my terminal window?
您需要确保
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/