@zhaikun
2016-12-28T02:15:07.000000Z
字数 960
阅读 1313
docker
更多的时候,需要让 Docker在后台运行而不是直接把执行命令的结果输出在当前宿主机下。此时,可以通过添加-d 参数来实现。
下面举两个例子来说明一下。
如果不使用 -d 参数运行容器。
[root@zzk ~]# docker run centos /bin/sh -c "while true; do echo hi zzk; sleep 1; done"hi zzkhi zzkhi zzkhi zzkhi zzkhi zzkhi 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 psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES0b71bcb30b60 centos "/bin/sh -c 'while tr" 2 minutes ago Up 2 minutes pensive_stallmanc4cc44e8870f 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 0b71bcb30b60hi zzkhi zzkhi zzkhi zzkhi zzkhi zzkhi zzkhi zzkhi zzkhi zzkhi zzkhi zzkhi zzkhi zzkhi zzk...