此选项的作用是什么?我已经阅读了很多有关TTY的文章,但仍然感到困惑。我试过没有-t和正义-i,似乎期望用户输入的程序在没有时抛出错误-t。启用伪TTY为何很重要?
-t
-i
该-t选项进入Unix / Linux中如何处理终端接入。过去,终端是硬线连接,后来是基于调制解调器的连接。它们具有物理设备驱动程序(它们是真正的设备)。通用网络一经使用,便开发了伪终端驱动程序。这是因为它创造了解什么,而不需要将它写入到你的程序直接(阅读手册页使用终端能力之间的分离stty,curses)。
stty
curses
因此,以此为背景,运行一个没有选项的容器,并且默认情况下,您有一个stdout流(如此docker run | <cmd>);使用运行-i,您将添加stdin流(如此<cmd> | docker run -i工作);-t通常在组合中使用,-it并添加了一个终端驱动程序,如果您要与该流程进行交互,则很可能需要此驱动程序。基本上,它使容器启动看起来像一个终端连接会话。
docker run | <cmd>
<cmd> | docker run -i
-it