更新:添加了缺少的 docker 附件。
嗨,我正在尝试使用-dti运行docker容器。但是我无法将终端设置为哑巴来访问。有没有办法改变这一点(即使我的ssh客户端很笨,它当前也设置为xterm)
例:
创建容器
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转义字符以移动光标。
我已经在运行的容器中尝试过“export TERM = dumb”,但是它不起作用。
有没有办法使用哑终端“运行”此程序?
我正在通过(哑)ssh从另一台计算机上的脚本运行此脚本。
最佳答案
使用-t设置此https://docs.docker.com/engine/reference/run/#env-environment-variables,但是删除会影响命令提示符(该提示符未显示)
可能的解决方案1 删除-t并保留-i。若要查看命令是否已完成,请回显已知 token (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)
可能的解决方案2 使用日志, docker 可以注销到Linux日志,可以在容器中执行命令时收集该日志。 (我还没有完全测试这一点。但是日志似乎是发生了什么的更好的输出)