前面我们研究了Docker容器的本质是一个特殊的进程,那么这个特殊进程是如何创建、如何终止的那?也就是说是谁来管理这个容器进程的生命周期的那?

在mac操作系统中我们可以通过活动监视器来观察操作系统里面有哪些进程,以及通过活动监视器我们可以让指定的进程终止运行。活动监视器本身也是一个进程,其之所以可以管理进程,是因为其保存了所有进程的信息,比如进程的名称,进程PID等信息。

同理在Docker的设计中,也存在一个叫做Docker daemon的进程,Docker daemon运行在Docker host上,负责创建、运行、监控容器,以及负责构建、存储容器镜像。那么Docker daemon在Docker的设计中处于什么位置那?我们来看下Docker的架构:

image.png

如上图为Docker的架构图,可知其使用了Client/Server架构:

  • 其中Docker daemon运行在Docker 主机上,负责创建、运行、监控容器,以及负责构建、存储容器镜像。

  • Docker客户端是为开发者提供的操作docker镜像和容器的客户端,比如我们最常使用的是docker 命令,使用docker build命令构建镜像,使用docker pull命令拉取镜像,使用docker run命令运行容器等。

  • Docker镜像本质为静态的文件,我们可以认为其是模板,基于其我们可以创建运行时的容器,关于Docker镜像里面包含了什么,我们在文章Docker镜像里到底是什么东西已经讲解过了。我们可以使用docker build来创建一个镜像,使用docker pull来拉取镜像

  • Docker 容器,即docker镜像在运行时的产物,我们可以使用docker run基于某个镜像启动一个容器运行,使用docker stop 命令来终止一个运行时的容器

  • Registry,存放docker镜像的仓库。

总结:

  • Docker采用了Client/Server架构,当我们启动Docker服务时,其实就启动一个daemon服务进程用来等待接受客户端的请求;当我们使用docker client的docker build命令构建一个镜像时,其实是把请求发送给了daemon服务,其收到请求后执行具体的镜像构建工作;当我们使用docker client的docker run命令启动一个容器时,其实是把请求发送给了daemon服务,其收到请求后获取对应的镜像内容,然后基于镜像启动一个对应的容器;

  • Docker daemon服务会负责维护每个容器进程的生命周期,会保存所有运行时容器的信息,以及容器进程标识等信息。所以当我们使用docker client启停容器时,其实是委托Docker daemon具体来执行容器进程的启停。

戳下面阅读

Docker的架构设计相关推荐

  1. 【原创视频】Docker总体架构设计及各模块原理剖析

    Docker总体架构设计及各模块原理剖析

  2. 阿里巴巴资深架构师深度解析微服务架构设计之SpringCloud+Dubbo

    微服务 软件架构是一个包含各种组织的系统组织,这些组件包括Web服务器,应用服务器,数据库,存储,通讯层),它们彼此或和环境存在关系.系统架构的目标是解决利益相关者的关注点. ​ 编辑切换为居中 添加 ...

  3. Spring Boot+Docker微服务分布式服务架构设计和部署案例

    2019独角兽企业重金招聘Python工程师标准>>> j360-microservice spring-boot+docker微服务设计之j360-microservice:(欢迎 ...

  4. re.containerbase.startinternal 子容器启动失败_微服务架构:基于微服务和Docker容器技术的PaaS云平台架构设计(微服务架构实施原理)...

    走过路过不要错过 点击蓝字关注我们 基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发.部署.运维管理.持续开发持续集成的流程.平台提供基础设施.中间件 ...

  5. 基于微服务和Docker的PaaS云平台架构设计

    基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发.部署.运维管理.持续开发持续集成的流程.平台提供基础设施.中间件.数据服务.云服务器等资源,开发人员 ...

  6. 基于微服务和Docker容器技术的PaaS云平台架构设计

    本文讲的是基于微服务和Docker容器技术的PaaS云平台架构设计[编者的话]在系统架构上,PaaS云平台主要分为微服务架构.Docker容器技术.DveOps三部分,这篇文章重点介绍微服务架构的实施 ...

  7. 企业级小架构设计部署实现-docker变种(一)负载均衡网站

    企业级小架构设计部署实现 企业级小架构设计部署实现-docker变种(一)负载均衡网站 企业级小架构设计部署实现-docker变种(二)日志系统 Elastic 企业级小架构设计部署实现-二- Ans ...

  8. 基于Docker的CaaS容器云平台架构设计及市场分析

    基于Docker的CaaS容器云平台架构设计及市场分析 1 项目背景-概述: "在移动互联网时代,企业需要寻找新的软件交付流程和IT架构,从而实现架构平台化,交付持续化,业务服务化. 容器将 ...

  9. 谈 Kubernetes 的架构设计与实现原理

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! 本文转载于公众号:真没什么逻辑 Kubernetes 基本上是这两年最热门.最被人熟知的技术了,它 ...

最新文章

  1. Xshell相关优化
  2. Linux系统编程(八)线程
  3. 乒乓球单循环赛_重庆市首届乒乓球业余锦标赛开拍 冠军奖3万 总奖金近10万
  4. ajax js java省市三级联动菜单,AJAX省市区三级联动下拉菜单(java版)
  5. oracle 使用imp,Oracle中的Imp和Expt用法
  6. 剑指offer面试题6 重建二叉树(java)
  7. SCP-bzoj-1000
  8. 计算机格式化后数据恢复的基础,格式化计算机硬盘后如何恢复原始数据_计算机的基本知识_IT /计算机_信息...
  9. 学习编程语言有哪些基本步骤呢?
  10. Python Web 框架-Django day06
  11. 安卓关于inflate方法的总结
  12. [CF949D]Curfew
  13. Linux 错误信息的查看(摘自鸟哥的私房菜一书)
  14. 小提琴机器人拉法_小提琴的弓怎么拉 有什么技巧
  15. 小程序云开发支持公众号网页开发了
  16. 黑苹果电源键睡眠关机的分析及解决办法
  17. 无法打开虚拟机“Ubuntu”,ubuntu.vmx获得所有权失败
  18. arcgis农田图例_ArcGIS在高标准农田建设项目图件制作中的应用
  19. http409 415报错原因
  20. 实例教你区分数字地、模拟地、电源地,单点接地

热门文章

  1. 【实验教程】华为设备基础配置
  2. matlab弧度转角度函数
  3. 查询出编号长度大于4的code_[LeetCode] 题目汇总(持续更新)
  4. 软件部件测试计划,Suite — ISO 26262 认证的嵌入式软件一体化测试平台+研发工具+恒润科技...
  5. Android开发入门书籍强烈推荐
  6. [ppurl]从”皮皮书屋”下载电子书的姿势
  7. 使用Managed DirectX编写游戏(-)
  8. 医疗时鲜资讯:关注新医改动态
  9. PHP利用ICU扩展intl快速实现汉字转拼音以及按拼音首字母分组排序
  10. Linux cal命令