一尘不染

对Docker -t选项分配伪TTY感到困惑

docker

此选项的作用是什么?我已经阅读了很多有关TTY的文章,但仍然感到困惑。我试过没有-t和正义-i,似乎期望用户输入的程序在没有时抛出错误-t。启用伪TTY为何很重要?


阅读 653

收藏
2020-06-17

共1个答案

一尘不染

-t选项进入Unix /
Linux中如何处理终端接入。过去,终端是硬线连接,后来是基于调制解调器的连接。它们具有物理设备驱动程序(它们是真正的设备)。通用网络一经使用,便开发了伪终端驱动程序。这是因为它创造了解什么,而不需要将它写入到你的程序直接(阅读手册页使用终端能力之间的分离sttycurses)。

因此,以此为背景,运行一个没有选项的容器,并且默认情况下,您有一个stdout流(如此docker run | <cmd>);使用运行-i,您将添加stdin流(如此<cmd> | docker run -i工作);-t通常在组合中使用,-it并添加了一个终端驱动程序,如果您要与该流程进行交互,则很可能需要此驱动程序。基本上,它使容器启动看起来像一个终端连接会话。

2020-06-17