Docker守护进程

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

[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 ~]# 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值