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" minutes ago Up 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..." minutes ago Up 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..." minutes ago Up seconds cjj02
[root@aliyun ~]# docker top cjj02
UID PID PPID C STIME TTY TIME CMD
root : ? :: /bin/sh -c while true; do echo hello world; sleep ; done
root : ? :: sleep
[root@aliyun ~]#

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

exec 命令

[root@aliyun ~]# docker top cjj02
UID PID PPID C STIME TTY TIME CMD
root : ? :: /bin/sh -c while true; do echo hello world; sleep ; done
root : ? :: sleep
[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

最新文章

  1. LaTeX简单使用方法
  2. 协议分析TMP
  3. 窥探Swift之数组安全索引与数组切片
  4. 解读Unity中的CG编写Shader系列六(漫反射)
  5. IIS短文件名泄露漏洞危害及防范方法
  6. Everything文件名实时搜索||解决局域网文件共享问题
  7. 利用MyEclipes的反转工程来配置Hibernate各种配置
  8. Java中的toString()方法
  9. 神秘链接__proto__是什么鬼
  10. 7.25 RPN转换
  11. 012一对一 唯一外键关联映射_双向(one-to-one)
  12. 在ASP.NET开发中一些单词的标准缩写
  13. POJ-1789 Truck History---最小生成树Prim算法
  14. [再寄小读者之数学篇](2014-06-20 求极限---Jordan 不等式的应用)
  15. Java之旅_高级教程_序列化
  16. How to update XENTRY Connect C5 software with .iso file
  17. 20135202闫佳歆--week4 系统调用(上)--学习笔记
  18. Thunder团队Final版本控制
  19. asp.net core web 本地iis开发
  20. cnblogs客户端配置说明

热门文章

  1. httprunner学习6-参数化(引用外部csv数据)
  2. ‘cmake' 不是内部或外部命令 也不是可运行的程序 或批处理文
  3. GhostScript命令参数详解(转)
  4. adb命令篇
  5. html中定位详解
  6. jenkins中jmeter项目流程图
  7. 转载 Easyui Tree方法扩展 - getLevel(获取节点级别)
  8. class struct Equals
  9. python--模块学习之xml模块
  10. ACM数据结构-单调栈、队列