[关闭]
@zhaikun 2016-12-28T10:15:07.000000Z 字数 960 阅读 1190

docker 容器守护态运行

docker


更多的时候,需要让 Docker在后台运行而不是直接把执行命令的结果输出在当前宿主机下。此时,可以通过添加-d 参数来实现。
下面举两个例子来说明一下。
如果不使用 -d 参数运行容器。

  1. [root@zzk ~]# docker run centos /bin/sh -c "while true; do echo hi zzk; sleep 1; done"
  2. hi zzk
  3. hi zzk
  4. hi zzk
  5. hi zzk
  6. hi zzk
  7. hi zzk
  8. hi zzk

容器会把输出的结果(STDOUT)打印到宿主机上面

如果使用了-d 参数运行容器。

  1. [root@zzk ~]# docker run -d centos /bin/sh -c "while true; do echo hi zzk; sleep 1; done"
  2. 0b71bcb30b60de42599bd7feb5cc503b8db1471b0eee4015f50be3ad5d5d1b31
  3. [root@zzk ~]#

此时容器会在后台运行并不会把输出的结果(STDOUT)打印到宿主机上面(输出结果可以用docker logs 查看)。
: 容器是否会长久运行,是和docker run指定的命令有关,和 -d 参数无关。

使用 -d 参数启动后会返回一个唯一的 id,也可以通过docker ps 命令来查看容器信息。

  1. [root@zzk ~]# docker ps
  2. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  3. 0b71bcb30b60 centos "/bin/sh -c 'while tr" 2 minutes ago Up 2 minutes pensive_stallman
  4. c4cc44e8870f nginx:1.9 "nginx -g 'daemon off" 2 hours ago Up 55 minutes 0.0.0.0:80->80/tcp, 443/tcp webserver
  5. [root@zzk ~]#

要获取容器的输出信息,可以通过 docker logs 命令。
类似tail -f 的命令 可以通过docker logs -f

-t加上时间戳

  1. [root@zzk ~]# docker logs 0b71bcb30b60
  2. hi zzk
  3. hi zzk
  4. hi zzk
  5. hi zzk
  6. hi zzk
  7. hi zzk
  8. hi zzk
  9. hi zzk
  10. hi zzk
  11. hi zzk
  12. hi zzk
  13. hi zzk
  14. hi zzk
  15. hi zzk
  16. hi zzk
  17. ...
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注