Docker分离模式

时间:2015-12-01 20:39:25

标签: docker

docker世界中的分离模式是什么?我读了这篇文章 Link,但它并没有准确解释分离模式的含义。

3 个答案:

答案 0 :(得分:85)

您可以使用-d选项以分离模式启动docker容器。因此容器启动并在后台运行。这意味着,您启动容器并在启动后可以使用控制台来执行其他命令。

与分离模式相反的是前景模式。这是默认模式,不使用-d选项时。在此模式下,用于执行docker run的控制台将附加到标准输入,输出和错误。这意味着您的控制台已附加到容器的进程。

在分离模式下,您可以使用docker logs -f <container_ID>跟踪docker容器的标准输出。

试试这两个选项。我总是使用分离模式来运行我的容器。我希望我能更清楚地解释一下。

答案 1 :(得分:6)

docker命令行上的detach选项指示docker客户端(docker)向服务器(dockerd)发出请求,然后客户端将退出,同时该请求继续在服务器上进行。服务器。造成混淆的部分原因可能是docker看起来像一个进程,实际上它是一个客户端/服务器应用程序,其中客户端只是REST API上的瘦前端,用于将每个命令发送到服务器。

使用docker container run --detach,这意味着将创建容器,如果成功,则服务器将以容器ID进行响应,并且容器将继续在服务器上运行,而您可以自由运行其他命令。这通常用于要在后台启动并继续运行其他命令的服务器(例如nginx)。请注意,您仍然可以使用--interactive-tty选项(通常缩写为-it)配置容器,然后再运行docker container attach连接到已经运行的容器。 (请注意,在您附加到运行-itd的容器之前,该容器从stdin读取的任何尝试都将挂起,而不会看到输入结束,如果您刚刚通过{{1},该输入通常会立即退出}。

如果不使用detach选项运行,则在创建容器后,客户端将立即运行Attach API调用,这样您就可以看到输出,并有选择地向容器上正在运行的进程提供输入。如果您的容器运行的是交互式内容(例如-d),这很有用。

还有其他几个命令允许使用detach选项,包括/bin/bash,它将启动整个项目并使它在后台在服务器上运行。还有许多docker-compose up -d命令,它们将在将更改提交给服务器以创建或更新服务的目标状态后分离,或者如果您不分离,则客户端将等待直到服务的当前状态与目标匹配状态,您可以看到部署进度。请注意,使用docker service命令时,您可能必须通过docker service才能保持连接状态,根据您的版本,行为在过去一年中已发生变化。

答案 2 :(得分:-5)

docker run -d -t ubuntu:14.04

docker run - 从docker image创建一个实例作为docker容器。 (如果图像在本地不可用,则从docker hub拉出) ubuntu - 图片名称

14.04 - 标记

-d, - detach - 分离模式

-t, - tip - 分配伪TTY

相关问题