为什么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”)