我想知道为什么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
答案 0 :(得分:2)
Bash是一个交互式提示。它使用来自STDIN的输入。
-i
对于Docker保持STDIN打开是必需的。没有它:bash将到达输入的结尾并终止。
-d
与您的问题无关。
-t
对bash的退出不负责,但是最好将-t
用于bash之类的交互式提示,以便Docker提供一个伪TTY,bash可以在其中编写提示(例如PS1)并控制序列(例如颜色)。