linux – “输入设备不是TTY”在“docker run”输出中的含义是什么?

这是一个有效的命令:
$echo 'hi there' | docker run -i ubuntu cat
hi there

这是一个响应错误消息的命令:

$echo 'hi there' | docker run -it ubuntu cat
the input device is not a TTY

我想弄清楚到底发生了什么.不只是“删除-t,它将被修复”.

我知道docker run的-t选项代表“Allocate a pseudo-TTY”,我已经阅读了historical overviews of what TTY stands for,但它并没有帮助我理解这里违反了什么类型的合同.

解决方法

tty表示你有一个终端,可以由xterm或许多linux命令行界面之一提供.它需要一个与之关联的键盘和文本输出接口.想要这个的典型原因是支持彩色文本输出,处理各种键组合(如箭头键),以及在屏幕上移动光标的能力.

当您将命令管道输入docker时,就像echo示例所示,该管道是输入,并且该管道没有tty接口,它只是一个文本流.尝试使用该tty创建tty将失败,因为错误消息指示.

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...