我正在使用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}} 中的
它被指定为退出
对不起,如果我的问题非常愚蠢,我在互联网上找不到解释(我对这一点有很大的误解)。
答案 0 :(得分:34)
-it
时{p> --interactive + --tty
是docker run
的缩写..它会直接带您进入容器内,其中-d
是{{}的缩写1}}这意味着你只需运行容器,然后分离,所以基本上你在后台运行容器。
编辑所以,如果您使用--detach
运行docker容器,它将运行-itd
选项并将您从容器中分离出来,这样即使没有任何默认设置,您的容器仍然在后台运行应用程序运行..
答案 1 :(得分:19)
docker run -it ubuntu:xenial /bin/bash
以交互模式启动容器(因此-it
标志),允许您与容器的/bin/bash
进行交互。这意味着现在您将在容器内部bash
会话,因此您可以ls
,mkdir
或在容器内执行任何bash命令。
这里的关键是"互动"。如果省略该标志,则容器仍会执行/bin/bash
但会立即退出。使用该标志,容器执行/bin/bash
然后耐心地等待您的输入。