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

时间:2019-01-24 13:49:04

标签: docker

我想知道为什么docker -i -t -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

1 个答案:

答案 0 :(得分:2)

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

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

-d与您的问题无关。
-t对bash的退出不负责,但是最好将-t用于bash之类的交互式提示,以便Docker提供一个伪TTY,bash可以在其中编写提示(例如PS1)并控制序列(例如颜色)。