如果我使用docker的exec命令运行命令,如下所示:
docker exec container gulp
Run Code Online (Sandbox Code Playgroud)
它只是运行命令,但没有输出到我的终端窗口。
但是,如果我实际上进入容器并手动运行命令:
docker exec -ti container bash
gulp
Run Code Online (Sandbox Code Playgroud)
我看到了gulp的输出:
[13:49:57]使用gulpfile〜/ code / services / app / gulpfile.js
[13:49:57]开始使用“脚本” ...
[13:49:57]开始使用“样式” ...
[13 :49:58]正在启动“ emailStyles” ...
...
如何运行我的第一个命令,仍然将输出发送到终端窗口?
旁注:我看到与npm installs,forever restarts等相同的行为。因此,这不仅是一个大问题,而且可能与docker如何映射stdout有关。
如何运行我的第一个命令并仍然将输出发送到我的终端窗口?
您需要确保docker run使用该-t选项启动以分配伪 tty。
然后docker exec没有-t仍然有效。
我docker exec -it在这里讨论,其中引用了“修复 Docker TERM 变量问题”)
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9045 次 |
| 最近记录: |