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