@zhaikun
2016-12-28T10:15:07.000000Z
字数 960
阅读 1190
docker
更多的时候,需要让 Docker在后台运行而不是直接把执行命令的结果输出在当前宿主机下。此时,可以通过添加-d
参数来实现。
下面举两个例子来说明一下。
如果不使用 -d
参数运行容器。
[root@zzk ~]# docker run centos /bin/sh -c "while true; do echo hi zzk; sleep 1; done"
hi zzk
hi zzk
hi zzk
hi zzk
hi zzk
hi zzk
hi zzk
容器会把输出的结果(STDOUT)打印到宿主机上面
如果使用了-d
参数运行容器。
[root@zzk ~]# docker run -d centos /bin/sh -c "while true; do echo hi zzk; sleep 1; done"
0b71bcb30b60de42599bd7feb5cc503b8db1471b0eee4015f50be3ad5d5d1b31
[root@zzk ~]#
此时容器会在后台运行并不会把输出的结果(STDOUT)打印到宿主机上面(输出结果可以用docker logs 查看)。
注: 容器是否会长久运行,是和docker run
指定的命令有关,和 -d
参数无关。
使用 -d
参数启动后会返回一个唯一的 id,也可以通过docker ps
命令来查看容器信息。
[root@zzk ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0b71bcb30b60 centos "/bin/sh -c 'while tr" 2 minutes ago Up 2 minutes pensive_stallman
c4cc44e8870f nginx:1.9 "nginx -g 'daemon off" 2 hours ago Up 55 minutes 0.0.0.0:80->80/tcp, 443/tcp webserver
[root@zzk ~]#
要获取容器的输出信息,可以通过 docker logs
命令。
类似tail -f
的命令 可以通过docker logs -f
-t
加上时间戳
[root@zzk ~]# docker logs 0b71bcb30b60
hi zzk
hi zzk
hi zzk
hi zzk
hi zzk
hi zzk
hi zzk
hi zzk
hi zzk
hi zzk
hi zzk
hi zzk
hi zzk
hi zzk
hi zzk
...