“docker运行-dti”与哑terminal

更新:添加了缺less的docker附加。

您好尝试运行docker集装箱,用-dti。 但是我不能访问一个terminal设置为愚蠢的。 有没有办法改变这一点(目前设置为xterm,即使我的SSH客户端是愚蠢的)

例:

创build容器

docker run -dti --name test -v /my-folder alpine /bin/ash docker attach test apk --update add nodejs cd /my-folder npm install -g gulp 

最后一个命令总是包含ascii转义字符来移动光标。

我已经尝试“导出TERM =哑”内运行的容器,但它不起作用。

有没有办法使用哑terminal“运行”?

我从另一台计算机上的脚本运行,通过(愚蠢)ssh。

使用-t设置这个https://docs.docker.com/engine/reference/run/#env-environment-variables ,但是除去影响命令提示符(提示不显示)

可能的解决scheme1删除-t并保留-i。 查看命令是否已完成回显已知令牌( ENDENDEND )。 即

 docker run -di --name test -v /my-folder alpine /bin/ash docker attach test apk --update add nodejs;echo ENDENDEND cd /my-folder;echo ENDENDEND npm install -g gulp;echo ENDENDEND 

不漂亮,但它的作品(结果没有ascii)

可能的解决scheme2使用日志,docker可以注销到linux日志,这可以在命令在容器中执行时收集。 (我还没有完全testing这一个,但日志似乎是发生了什么更好的输出)

更新:是的,问题是。 但是,如果你想在运行一个命令的时候看到整个过程,也许这样更好:

 docker run -di --name test -v/my-folder alpine /bin/ash docker exec -it test /bin/ash 

最后你需要在所有工作完成后杀死容器。


docker run -d意思是“在后台运行容器并打印容器ID”不能作为守护进程启动容器