我想运行一个 ubuntu
容器并进入 bash
:
[root@localhost backup]# docker run ubuntu bash
[root@localhost backup]#
ubuntu
容器直接退出了,我怎样进入bash
?
使用-i
和-t
选项。
示例:
$ docker run -i -t ubuntu /bin/bash
root@9055316d5ae4:/# echo "Hello Ubuntu"
Hello Ubuntu
root@9055316d5ae4:/# exit
$ docker run --help | egrep "(-i,|-t,)"
-i, --interactive=false 即使没有附加,也保持 STDIN 打开
-t, --tty=false 分配一个伪终端
更新:这个命令之所以有效并保持容器运行(运行 /bin/bash
),是因为 -i
和 -t
选项(特别是 -i
)保持 STDIN
打开,因此 /bin/bash
不会立即终止从而终止容器。-- 您需要/想要使用 -t
的原因是您可能想要一个类似终端的交互式会话,因此 t
为您创建了一个新的伪终端。-- 此外,如果您在不使用 -i
/-t
选项的情况下查看 docker ps -a
的输出,则会看到您的容器正常终止,并显示 退出代码 为 0
。
ubuntu
容器会退出?您能详细解释一下添加“-i -t”选项和不添加选项之间的区别吗? - Nan Xiao-i,--interactive = false
即使没有连接,也保持STDIN打开,attached
是什么意思?您能给出解释吗? - Nan Xiaodocker run
中如何附加到容器?如果我想使用 STDIN,似乎必须使用-i
… - YON