From a435453b80dbf902a15be9b1b51ba9f09928875f Mon Sep 17 00:00:00 2001 From: dayiguizhen <709252908@qq.com> Date: Sun, 2 Aug 2015 15:43:04 +0800 Subject: [PATCH] Update daemon.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit docker run -d 的含义是在后台运行容器并且输出容器的ID(Run container in background and print container ID),而不是以守护态运行容器。 --- container/daemon.md | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/container/daemon.md b/container/daemon.md index 5318249..afc5792 100644 --- a/container/daemon.md +++ b/container/daemon.md @@ -1,22 +1,37 @@ -##守护态运行 +##后台(background)运行 -更多的时候,需要让 Docker 容器在后台以守护态(Daemonized)形式运行。此时,可以通过添加 `-d` 参数来实现。 +更多的时候,需要让 Docker在后台运行而不是直接把执行命令的结果输出在当前宿主机下。此时,可以通过添加 `-d` 参数来实现。 -例如下面的命令会在后台运行容器。 +下面举两个例子来说明一下。 + +如果不使用 `-d` 参数运行容器。 ``` -$ sudo docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" -1e5535038e285177d5214659a068137486f96ee5c2e85a4ac52dc83f2ebe4147 +$ sudo docker run ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" +hello world +hello world +hello world +hello world ``` +容器会把输出的结果(STDOUT)打印到宿主机上面 -容器启动后会返回一个唯一的 id,也可以通过 `docker ps` 命令来查看容器信息。 +如果使用了 `-d` 参数运行容器。 +``` +$ sudo docker run ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done" +77b2dc01fe0f3f1265df143181e7b9af5e05279a884f4776ee75350ea9d8017a +``` +此时容器会在后台运行并不会把输出的结果(STDOUT)打印到宿主机上面(输出结果可以用docker logs 查看)。 + +**注:** 容器是否会长久运行,是和docker run指定的命令有关,和 `-d` 参数无关。 + +使用 `-d` 参数启动后会返回一个唯一的 id,也可以通过 `docker ps` 命令来查看容器信息。 ``` $ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES -1e5535038e28 ubuntu:14.04 /bin/sh -c 'while tr 2 minutes ago Up 1 minute insane_babbage +77b2dc01fe0f ubuntu:14.04 /bin/sh -c 'while tr 2 minutes ago Up 1 minute agitated_wright ``` 要获取容器的输出信息,可以通过 `docker logs` 命令。 ``` -$ sudo docker logs insane_babbage +$ sudo docker logs [container ID or NAMES] hello world hello world hello world