更新:添加了丢失的docker attach。
您正在尝试使用-dti运行docker容器。但我无法使用终端设置为哑。有没有办法改变它(它目前设置为xterm,即使我的ssh客户端是哑巴)
示例:
创建容器
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 = dumb"在正在运行的容器内,但它不起作用。
有没有办法运行"这个使用哑终端?
我是从另一台计算机上的脚本运行的,通过(哑)ssh。
答案 0 :(得分:1)
更新: 是的-t是问题所在。 但是,如果您想在运行命令时查看整个过程,可能这种方式更好:
docker run -di --name test -v/my-folder alpine /bin/ash
docker exec -it test /bin/ash
最后你需要在完成所有工作后杀死容器。
docker run -d表示"在后台运行容器并打印容器ID" 不要将容器作为守护进程启动
答案 1 :(得分:1)
使用-t设置此https://docs.docker.com/engine/reference/run/#env-environment-variables,但删除命令提示符效果(提示未显示)
可能的解决方案1 删除-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)
可能的解决方案2 使用日志,docker可以注销到linux日志,这可以在容器中执行命令时收集。 (我还没有完全测试这个。但是日志似乎是发生的更好的输出)