Docker守护进程

来源:互联网 发布:javascript jquery 编辑:程序博客网 时间:2024/05/18 13:23

其中守护进程有两种方式,一种是使用基本的命令

[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 -efUID        PID  PPID  C STIME TTY          TIME CMDroot         1     0  0 01:37 ?        00:00:00 /bin/bashroot        15     1  0 01:38 ?        00:00:00 ps -ef[root@65cbc174b72b /]# [root@65cbc174b72b /]# [root@localhost ~]# [root@localhost ~]# [root@localhost ~]# docker ps -lCONTAINER ID        IMAGE                          COMMAND             CREATED             STATUS              PORTS               NAMES65cbc174b72b        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 -lCONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS               NAMES3d8b0e8ba1ea        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_test12017-03-13T02:09:51.589738000Z hello docker2017-03-13T02:09:52.590453000Z hello docker2017-03-13T02:09:53.591538000Z hello docker2017-03-13T02:09:54.593297000Z hello docker2017-03-13T02:09:55.595479000Z hello docker2017-03-13T02:09:56.596623000Z hello docker2017-03-13T02:09:57.597450000Z hello docker2017-03-13T02:09:58.598044000Z hello docker2017-03-13T02:09:59.598696000Z hello docker2017-03-13T02:10:00.599467000Z hello docker2017-03-13T02:10:01.600191000Z hello docker2017-03-13T02:10:02.601255000Z hello docker2017-03-13T02:10:03.602785000Z hello docker

我们可以通过以下命令查看容器中进行运行情况:

[root@localhost ~]# docker top 镜像名

示例:

[root@localhost ~]# docker ps -lCONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS               NAMES3d8b0e8ba1ea        hub.c.163.com/library/ubuntu   "/bin/sh -c 'while tr"   21 minutes ago      Up 21 minutes                           daemon_test1[root@localhost ~]# docker top daemon_test1UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMDroot                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/bashroot@3d8b0e8ba1ea:/#                                                                                                                                                root@3d8b0e8ba1ea:/# ps -efUID        PID  PPID  C STIME TTY          TIME CMDroot         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/bashroot        33     1  0 02:36 ?        00:00:00 sleep 1root        34    20  0 02:36 ?        00:00:00 ps -efroot@3d8b0e8ba1ea:/# [root@localhost ~]# docker top daemon_test1UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMDroot                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/bashroot                30267               30110               0                   10:37               ?                   00:00:00            sleep 1[root@localhost ~]# 

那么如何停止运行中守护进程,使用以下两种命令

docker stop 容器名docker kill 容器名

stop是发一个信号给容器,等待容器的停止(会有时间等待),kill是直接停止容器。

示例:

[root@localhost ~]# docker stop daemon_test1daemon_test1[root@localhost ~]# [root@localhost ~]# docker psCONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                   NAMES65cbc174b72b        hub.c.163.com/library/centos   "/bin/bash"              About an hour ago   Up About an hour                            cranky_leakeyb4f32bbe4a34        hub.c.163.com/library/ubuntu   "/bin/bash"              39 hours ago        Up 39 hours                                 loving_brattaind75a2d8c7822        xingguo/df_test1               "nginx -g 'daemon off"   47 hours ago        Up 47 hours         0.0.0.0:32770->80/tcp   df_nginx_web959c0fc5d903        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_leakeycranky_leakey[root@localhost ~]# docker psCONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                   NAMESb4f32bbe4a34        hub.c.163.com/library/ubuntu   "/bin/bash"              39 hours ago        Up 39 hours                                 loving_brattaind75a2d8c7822        xingguo/df_test1               "nginx -g 'daemon off"   47 hours ago        Up 47 hours         0.0.0.0:32770->80/tcp   df_nginx_web959c0fc5d903        xingguo/commit_test1           "nginx -g 'daemon off"   2 days ago          Up 2 days           0.0.0.0:32769->80/tcp   nginx_test[root@localhost ~]# 
0 0
原创粉丝点击