Linux 不会';指定-t和-i对于docker运行是冗余的?

Linux 不会';指定-t和-i对于docker运行是冗余的?,linux,docker,containers,Linux,Docker,Containers,这篇文章充实了其中的大部分内容: 但是如果“-i”给了我一个stdin流,-t给了我一个完整的终端驱动程序,那么如果我一起使用它们,我不是多余的吗?或者,使用just-t,我只能通过ssh访问它,但如果添加-I,我还可以直接从控制台通过管道输入它?我记得不久前在文档中读到过它。我看了一眼,发现: 对于交互式进程(如shell),必须一起使用-i-t 以便为容器进程分配tty-i-t通常是 书面-如您将在后面的示例中看到的那样。指定-t是 当客户从管道接收其标准输入时禁止, 例如: 在公园里。我经

这篇文章充实了其中的大部分内容:


但是如果“-i”给了我一个stdin流,-t给了我一个完整的终端驱动程序,那么如果我一起使用它们,我不是多余的吗?或者,使用just-t,我只能通过ssh访问它,但如果添加-I,我还可以直接从控制台通过管道输入它?

我记得不久前在文档中读到过它。我看了一眼,发现:

对于交互式进程(如shell),必须一起使用-i-t 以便为容器进程分配tty-i-t通常是 书面-如您将在后面的示例中看到的那样。指定-t是 当客户从管道接收其标准输入时禁止, 例如:

在公园里。我经常使用
--ti
,并且总是以
ti
的形式编写,我想这就是谷歌搜索结果很少的原因。文档中提到了很多
it
,但没有一次提到
ti


事物的技术方面 OP要求我更详细一点,所以这里是

-i
标志表示“交互式”(也可替换为--interactive)。这基本上意味着外壳将保持打开状态,即使它与此无关。(例如等待用户输入)

交互式shell的一个示例是标准终端窗口/命令提示符。它将保持打开状态并等待您的输入(例如交互),一旦收到输入,它将执行任务

非交互式shell的一个示例是简单的bash脚本。脚本将运行,但不会提供与shell的任何交互。(尽管可以用read语句模拟交互式shell

因此,指定-t而不指定-i意味着tty将立即解散,因为它实际上不会“运行”任何东西,而且由于您没有以交互方式启动它,因此它不会等待您的输入


可以找到更多关于交互与非交互的信息。

我想这证实了我的想法,但很遗憾,没有更低级的解释,我认为这会提高我对docker本身的理解。请稍后查看;)好的@red888,你现在可以查看:p我添加了解释:)