Docker守护式容器

1.什么是守护式容器

  • 能够长期运行
  • 没有交互式会话
  • 适合运行应用程序和服务

2.以守护形式运行容器

运行交互式容器时以Ctrl+P Ctrl+Q 来退出容器,此时容器还在后台继续运行,我们可以通过docker attach [name] 来重新进入容器

[root@aliyun ~]# docker start -i cjj01
root@4f38551cf3cf:/#    // Ctrl+P Ctrl+Q 退出
[root@aliyun ~]# [root@aliyun ~]# docker ps // 可以查看正在运行的容器 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4f38551cf3cf ubuntu "/bin/bash" 31 minutes ago Up 57 seconds cjj01 [root@aliyun ~]# docker attach cjj01 root@4f38551cf3cf:/#
  • -t:在新容器内指定一个伪终端或终端。

  • -i:允许你对容器内的标准输入 (STDIN) 进行交互。

 

 

3.使用run命令启动守护式容器

[root@aliyun ~]# docker run --name cjj02 -d ubuntu /bin/sh -c "while true; do echo hello world; sleep 1; done"
74fb89116dac4410bd268c92a3c2a9507430c49f3e61795142cad9ffed565837
[root@aliyun ~]# docker logs cjj02  // 查看容器内的标准输出
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
[root@aliyun ~]# 

在输出中,我们没有看到期望的"hello world",而是一串长字符

74fb89116dac4410bd268c92a3c2a9507430c49f3e61795142cad9ffed565837

这个长字符串叫做容器ID,对每个容器来说都是唯一的,我们可以通过容器ID来查看对应的容器发生了什么。

首先,我们需要确认容器有在运行,可以通过 docker ps 来查看

[root@aliyun ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
74fb89116dac        ubuntu              "/bin/sh -c 'while..."   2 minutes ago       Up 2 minutes                            cjj02

CONTAINER ID:容器ID

NAMES:自动分配的容器名称

4.停止容器

docker stop [容器名]

docker kill [容器名]

[root@aliyun ~]# docker stop cjj02
cjj02

 5.查看运行中容器的进程

[root@aliyun ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
74fb89116dac        ubuntu              "/bin/sh -c 'while..."   25 minutes ago      Up 12 seconds                           cjj02
[root@aliyun ~]# docker top cjj02
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                9045                9028                0                   17:38               ?                   00:00:00            /bin/sh -c while true; do echo hello world; sleep 1; done
root                9090                9045                0                   17:39               ?                   00:00:00            sleep 1
[root@aliyun ~]# 

6.在运行中的容器中启动新的进程

exec 命令

[root@aliyun ~]# docker top cjj02
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                9045                9028                0                   17:38               ?                   00:00:00            /bin/sh -c while true; do echo hello world; sleep 1; done
root                9090                9045                0                   17:39               ?                   00:00:00            sleep 1
[root@aliyun ~]# docker exec -i -t cjj02 /bin/bash
root@74fb89116dac:/#  // Ctrl+P Ctrl+Q 退出
[root@aliyun ~]# docker top cjj02
UID                 PID                 PPID                C                   STIME               TTY                 TIME                CMD
root                9045                9028                0                   17:38               ?                   00:00:00            /bin/sh -c while true; do echo hello world; sleep 1; done
root                13786               13768               0                   18:56               pts/1               00:00:00            /bin/bash
root                13867               9045                0                   18:57               ?                   00:00:00            sleep 1

 

转载于:https://www.cnblogs.com/chuijingjing/p/11580273.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值