Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么docker-itd使容器运行而docker-d使其退出_Docker - Fatal编程技术网

为什么docker-itd使容器运行而docker-d使其退出

为什么docker-itd使容器运行而docker-d使其退出,docker,Docker,我想知道为什么docker-d centos/bin/bash使容器在后台运行,而docker-d centos/bin/bash使容器进入退出状态 嘿,伙计们,我正在试图理解为什么-I-t使容器保持活动状态。我本以为在上述场景中,-d就足够了 $ docker run -d --name mycentos3 centos 0bebdb11f3796bf5ac1ee9b0f132c3b3a4fcc2390f77aa971e6700d025025ebb docker run -i -t -d -

我想知道为什么
docker-d centos/bin/bash
使容器在后台运行,而
docker-d centos/bin/bash
使容器进入退出状态

嘿,伙计们,我正在试图理解为什么
-I-t
使容器保持活动状态。我本以为在上述场景中,
-d
就足够了

$ docker run -d --name mycentos3 centos
0bebdb11f3796bf5ac1ee9b0f132c3b3a4fcc2390f77aa971e6700d025025ebb

docker run -i -t -d --name mycentos4 centos
2be599d7310677c53c6f1dd1b5c70106f4c33f3193aad466ca34f0855173e559

docker ps

CONTAINER ID        IMAGE               COMMAND             CREATED                  STATUS              PORTS               NAMES

2be599d73106        centos              "/bin/bash"         Less than a second ago   Up 1 second                             mycentos4

Bash是一个交互式提示。它使用STDIN的输入

-i
是Docker保持STDIN打开所必需的。没有它:bash将到达输入的末尾并终止

-d
与您的问题无关。

-t
不负责bash的退出,但最好使用
-t
进行bash之类的交互式提示,这样Docker就提供了一个伪TTY,bash可以在其中写入提示(例如PS1)和控制序列(例如颜色).

您所做的基本上等同于在命令提示符下键入
bash&
。在这个更简单的非码头工人案件中,你预计会发生什么?为什么?@DavidMaze--bash&现在清楚了。是的,谢谢!。。我懂了。。你知道docker run-i和docker run-a STDIN的区别吗?一个STDIN看起来像
-i
-a STDIN
完全一样。虽然
-i
将在稍后进行计算(即具有更高的优先级),并且指定任何
-a
选项将撤消默认配置(即“附加到STDOUT+STDERR”)