其中守护进程有两种方式,一种是使用基本的命令
[root@localhost ~]# docker run -i -t 镜像名 /bin/bash
然后使用ctrl+p,ctrl+q返回。
[root@localhost ~]# docker run -i -t hub.c.163.com/library/centos /bin/bash
[root@65cbc174b72b /]#
[root@65cbc174b72b /]#
[root@65cbc174b72b /]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 01:37 ? 00:00:00 /bin/bash
root 15 1 0 01:38 ? 00:00:00 ps -ef
[root@65cbc174b72b /]#
[root@65cbc174b72b /]# [root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
65cbc174b72b hub.c.163.com/library/centos "/bin/bash" 15 minutes ago Up 15 minutes cranky_leakey
[root@localhost ~]#
第二种,比较常用的方式是使用命令:
[root@localhost ~]# docker run -d 镜像名 [COMMAND][ARG...]
-d是使用后台的方式启动容器。
启动名字为daemon_test1的容器,每隔1秒打印一条hello docker:
[root@localhost ~]# docker run --name daemon_test1 -d hub.c.163.com/library/ubuntu /bin/sh -c "while true;do echo hello docker;sleep 1;done;"
3d8b0e8ba1eab452494aa386d2be72137a661880a54b4b571f28311f59301d6d
[root@localhost ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3d8b0e8ba1ea hub.c.163.com/library/ubuntu "/bin/sh -c 'while tr" 51 seconds ago Up 44 seconds daemon_test1
[root@localhost ~]#
可以通过命令查看打印的日志
[root@localhost ~]# docker logs [-ft] [--tail n] 镜像名
-f 查看实时日志
-t 日志带上时间戳
–tail n 查看最新的多少条
[root@localhost ~]# docker logs -ft --tail 10 daemon_test1
2017-03-13T02:09:51.589738000Z hello docker
2017-03-13T02:09:52.590453000Z hello docker
2017-03-13T02:09:53.591538000Z hello docker
2017-03-13T02:09:54.593297000Z hello docker
2017-03-13T02:09:55.595479000Z hello docker
2017-03-13T02:09:56.596623000Z hello docker
2017-03-13T02:09:57.597450000Z hello docker
2017-03-13T02:09:58.598044000Z hello docker
2017-03-13T02:09:59.598696000Z hello docker
2017-03-13T02:10:00.599467000Z hello docker
2017-03-13T02:10:01.600191000Z hello docker
2017-03-13T02:10:02.601255000Z hello docker
2017-03-13T02:10:03.602785000Z hello docker
我们可以通过以下命令查看容器中进行运行情况:
[root@localhost ~]# docker top 镜像名
示例:
[root@localhost ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3d8b0e8ba1ea hub.c.163.com/library/ubuntu "/bin/sh -c 'while tr" 21 minutes ago Up 21 minutes daemon_test1
[root@localhost ~]# docker top daemon_test1
UID PID PPID C STIME TTY TIME CMD
root 27478 27460 0 10:07 ? 00:00:00 /bin/sh -c while true;do echo hello docker;sleep 1;done;
root 29879 27478 0 10:29 ? 00:00:00 sleep 1
[root@localhost ~]#
一般我们会在一个容器中运行多个进程,使用以下命令在一个容器中运行新的进程:
[root@localhost ~]# docker exec [-d] [-i] [-t] 容器名 [COMMAND][ARG...]
示例:
[root@localhost ~]# docker exec -i -t daemon_test1 /bin/bash
root@3d8b0e8ba1ea:/#
root@3d8b0e8ba1ea:/# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 02:36 ? 00:00:00 /bin/sh -c while true;do echo hello docker;sleep 1;done;
root 20 0 0 02:36 ? 00:00:00 /bin/bash
root 33 1 0 02:36 ? 00:00:00 sleep 1
root 34 20 0 02:36 ? 00:00:00 ps -ef
root@3d8b0e8ba1ea:/#
[root@localhost ~]# docker top daemon_test1
UID PID PPID C STIME TTY TIME CMD
root 30110 30092 0 10:36 ? 00:00:00 /bin/sh -c while true;do echo hello docker;sleep 1;done;
root 30179 30163 0 10:36 pts/3 00:00:00 /bin/bash
root 30267 30110 0 10:37 ? 00:00:00 sleep 1
[root@localhost ~]#
那么如何停止运行中守护进程,使用以下两种命令
docker stop 容器名
docker kill 容器名
stop是发一个信号给容器,等待容器的停止(会有时间等待),kill是直接停止容器。
示例:
[root@localhost ~]# docker stop daemon_test1
daemon_test1
[root@localhost ~]#
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
65cbc174b72b hub.c.163.com/library/centos "/bin/bash" About an hour ago Up About an hour cranky_leakey
b4f32bbe4a34 hub.c.163.com/library/ubuntu "/bin/bash" 39 hours ago Up 39 hours loving_brattain
d75a2d8c7822 xingguo/df_test1 "nginx -g 'daemon off" 47 hours ago Up 47 hours 0.0.0.0:32770->80/tcp df_nginx_web
959c0fc5d903 xingguo/commit_test1 "nginx -g 'daemon off" 2 days ago Up 2 days 0.0.0.0:32769->80/tcp nginx_test
[root@localhost ~]# docker kill cranky_leakey
cranky_leakey
[root@localhost ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b4f32bbe4a34 hub.c.163.com/library/ubuntu "/bin/bash" 39 hours ago Up 39 hours loving_brattain
d75a2d8c7822 xingguo/df_test1 "nginx -g 'daemon off" 47 hours ago Up 47 hours 0.0.0.0:32770->80/tcp df_nginx_web
959c0fc5d903 xingguo/commit_test1 "nginx -g 'daemon off" 2 days ago Up 2 days 0.0.0.0:32769->80/tcp nginx_test
[root@localhost ~]#