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

前端之家收集整理的这篇文章主要介绍了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将失败,因为错误消息指示.

猜你在找的Linux相关文章