关于docker run命令参数-t -i的问题

时间:2019-05-16 04:55:00

标签: docker

我对这三个命令感到困惑,我不知道它们之间的区别。抱歉,我是Docker的新手。

我看不出结果的区别。有人可以告诉我区别吗?

  1. docker run -it IMAGE_NAME / bin / bash

  2. docker run -i IMAGE_NAME / bin / bash

  3. docker run -i IMAGE_NAME

3 个答案:

答案 0 :(得分:1)

来自docker文档

  

-t:分配一个伪tty

     

-i:即使未连接STDIN,也要保持打开状态

对于交互式进程(如shell),必须一起使用-i -t才能为容器进程分配tty。

docker run -i imagename / bin / bash

这会将外壳连接到容器。您可以在shell上运行任何shell命令。

docker run -i imagename

这会将标准输出转储到终端上。与docker run类似,但具有从管道接收输入的功能。

答案 1 :(得分:1)

Docker run命令具有一些参数,可以在 Detched Foreground 模式下运行命令。

-i和-t处于“前台”模式。

-i    : Keep STDIN open even if not attached
-t    : Allocate a pseudo-tty

对于-i,无论何时运行docker container命令,传递给它的命令都会被触发。在您的情况下为“ /bin/bash

文档注释

  

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

更多详细信息Here

答案 2 :(得分:0)

docker run -it IMAGE_NAME / bin / bash->如果使用-i(interactive)选项(用于执行容器中的任何命令)和-t(tty),则可以进入容器使您可以在终端输入任何命令,/ bin / bash是linux shell的类型(例如sh,ksh,bash等)