什么是docker run -it flag?

时间:2018-01-21 15:27:45

标签: docker dockerfile

我正在使用docker做一些复杂的事情,但结果我不知道docker run标志是什么意思。 最近我遇到了docker run -itd ubuntu:xenial /bin/bash 命令的一些例子,这让我有些困惑。

-it

我的问题是在这里写bin/bash标志是否有意义,如果实例化期间的容器运行docker run --name test -it debian

在文档中我们有一个例子

docker run -d ubuntu:xenial /bin/bash

带解释

  

-it指示Docker分配连接到的伪TTY   容器的标准;在中创建交互式bash shell   容器

和帮助页面中的-t标志说明

  

-t, - tip分配一个伪TTY

如果我在

期间删除-it标志
docker ps -a

我新创建的容器没有那么多

{{1}}

中的

它被指定为退出

对不起,如果我的问题非常愚蠢,我在互联网上找不到解释(我对这一点有很大的误解)。

2 个答案:

答案 0 :(得分:34)

使用此命令-it时{p> --interactive + --ttydocker run的缩写..它会直接带您进入容器内,其中-d是{{}的缩写1}}这意味着你只需运行容器,然后分离,所以基本上你在后台运行容器。 编辑所以,如果您使用--detach运行docker容器,它将运行-itd选项并将您从容器中分离出来,这样即使没有任何默认设置,您的容器仍然在后台运行应用程序运行..

答案 1 :(得分:19)

docker run -it ubuntu:xenial /bin/bash以交互模式启动容器(因此-it标志),允许您与容器的/bin/bash进行交互。这意味着现在您将在容器内部bash会话,因此您可以lsmkdir或在容器内执行任何bash命令。

这里的关键是"互动"。如果省略该标志,则容器仍会执行/bin/bash但会立即退出。使用该标志,容器执行/bin/bash然后耐心地等待您的输入。