“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”不能作为守护进程启动容器