网站大量收购闲置独家精品文档,联系QQ:2885784924

Docker 架构与进程管理.pdfVIP

  1. 1、本文档共125页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Docker 架构与进程管理 目录 Docker 架构与进程管理 Docker OCI容器标准和引擎架构 2 Docker 容器安全(1):我的容器真的需要privileged权限吗? Docker 容器运行时runtime Docker 理解进程(1):为什么我在容器中不能kill 1号进程? Docker 理解进程(3):为什么我在容器中的进程被强制杀死了? Docker 组件基本介绍 41 Kubelet CRI 容器运行时 Linux Signal Linux 进程和线程 内存访问以及调度 在Kubernetes 1.20版本中不推荐使用Docker ! 组件组成:剖析 Docker 组件作用及其底层工作原理 进程状态 为什么容器里有这么多僵尸进程? 112 Docker OCI容器标准和引擎架构 Docker OCI容器标准和引擎架构 docker利用namespace技术,可以将进程放到一个隔离环境里面,同时cgroup技术将容器进程限制 资源配额,可以通过overyfs来模拟一个完整的这种文件系统。 那么业界又是如何定义这一切的呢?这就是OCI的容器标准了。 OCl 容器标准 Open Container Initiative 1. OCl 组织于2015年创建,是一个致力于定义容器镜像标准和运行时标准的开放式组织。 2. OCI定义了镜像标准(Image Specification)、运行时标准(Runtime Specification)和分发 标准(Distribution Specification) 镜像标准定义 应用如何打包(其实也就是overyfs那块,怎么通过容器镜像的驱动来将 分层的文件系统标准化) 运行时标准定义 如何解压应用包并运行(将容器镜像进行解压,并且运行) 分发标准定义 如何分发容器镜像 docker当时认为它是标准,但是docker本生实现是很重的,当kubernetes对接docker的时候会发 现很多东西对不上的,中间功能会有相互冲突和覆盖的地方,所以kubernetes起了一个OCI的规 范,它尝试去将容器技术规范化,标准化。当你要去实现一套自己定义容器规范的时候,那么那 就需要去遵循这套规范。 docker 引擎架构 第 1 页 /共 123 页 Docker OCI容器标准和引擎架构 在每台机器上你安装了docker之后,它会有一个docker daemon,这个是docker本身的一个后台服 务端,它实际上就是rest api,同时机器上面还会安装docker command,这个时候就可以将请求 给到docker daemon,现在新的docker版本都已经支持了对OCI的兼容,docker daemon接收到请求 之后通过GRPC的调用将请求转到containerd里面去,containerd是真正用来控制这些运行时的, containerd也是一个单独可以运行的组件。 containerd会去真正启动containerd的shim进程,然后再通过runc,也就是底层运行时的一个接 口 ,通过runc再去启动容器进程。 通过上面,docker就整个和OCI规范完全匹配起来了。 docker shim它的作用是什么:在早期containerd和containerd shim是不存在的,在早期docker 命令去启动容器的时候,这个容器进程是由docker daemon直接拉起的,也就是docker daemon下 面是你的容器进程,这会有什么问题呢?docker daemon是你所有容器的父进程每当你去升级 docker或者重启docker的时候,父进程就不存在了,那么所有的子进程就全部会重启。也就是说 你不能轻易的去升级docker,在早期docker是有一个这样致命问题的。

文档评论(0)

IT文档大师 + 关注
实名认证
文档贡献者

IT架构师、码农、自由职业者

1亿VIP精品文档

相关文档