为什么运行命令
问题描述:
我的搬运工图像从下面Dockerfile创建后做我的搬运工容器出口。为什么运行命令
docker run -d d1 bash
,但如果我运行下面的命令,我可以在容器外壳连接:
docker run -it d1 bash
我不知道为什么第一个命令不建立在一个壳容器。
EDIT1
我希望我的容器中,在后台运行,所以我可以在以后的时间连接到它。但在运行第一个命令后,容器停止了,我不知道原因。
答
第一个命令确实创建了一个shell,但它在没有任何附加输入的情况下运行断开连接。因此,就像您运行bash </dev/null
,shell在到达stdin结束后立即退出。如果你运行了docker run -itd d1 bash
,你将会有一个tty和stdin连接到外壳,所以它不会退出,但会断开连接。您还可以选择其他命令来运行,例如docker -d d1 tail -f /dev/null
。