docker_practice/container/daemon.md

47 lines
1.4 KiB
Go
Raw Normal View History

2017-11-25 01:28:28 +00:00
## 后台运行
2014-09-15 13:25:36 +00:00
更多的时候需要让 Docker 在后台运行而不是直接把执行命令的结果输出在当前宿主机下此时可以通过添加 `-d` 参数来实现
2014-09-15 13:25:36 +00:00
下面举两个例子来说明一下
如果不使用 `-d` 参数运行容器
```bash
$ docker run ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
hello world
hello world
hello world
hello world
2014-09-15 13:25:36 +00:00
```
容器会把输出的结果 (STDOUT) 打印到宿主机上面
如果使用了 `-d` 参数运行容器
```bash
$ docker run -d ubuntu:18.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"
77b2dc01fe0f3f1265df143181e7b9af5e05279a884f4776ee75350ea9d8017a
```
此时容器会在后台运行并不会把输出的结果 (STDOUT) 打印到宿主机上面(输出结果可以用 `docker logs` 查看)
**** 容器是否会长久运行是和 `docker run` 指定的命令有关 `-d` 参数无关
2014-09-15 13:25:36 +00:00
使用 `-d` 参数启动后会返回一个唯一的 id也可以通过 `docker container ls` 命令来查看容器信息
```
$ docker container ls
2014-09-15 13:25:36 +00:00
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
77b2dc01fe0f ubuntu:18.04 /bin/sh -c 'while tr 2 minutes ago Up 1 minute agitated_wright
2014-09-15 13:25:36 +00:00
```
要获取容器的输出信息可以通过 `docker container logs` 命令
```bash
$ docker container logs [container ID or NAMES]
2014-09-15 13:25:36 +00:00
hello world
hello world
hello world
. . .
```