我对这三个命令感到困惑,我不知道它们之间的区别。抱歉,我是Docker的新手。
我看不出结果的区别。有人可以告诉我区别吗?
docker run -it IMAGE_NAME / bin / bash
docker run -i IMAGE_NAME / bin / bash
docker run -i IMAGE_NAME
答案 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等)