一、Docker Client and Daemon(docker egine docker 引擎)

docker是一个客户端工具,作用是发送 用户的请求给 dockerd

安装路径: /usr/bin/docker dockerd 也叫 docker daemon

安装路径: /usr/bin/dockerd

一句话概括: docker和dockerd 组成了docker engine

二 、Containerd(容器)

管理容器的生命周期(从创建容器到销毁容器) 拉取/推送容器镜像 存储管理(管理镜像及容器数据的存储) 调用 runC 运行容器(与 runC 等容器运行时

一句话概括:

docker对容器的管理和操作基本 都是通过 containerd 来完成的

2.1、 Containerd 的背景

      1. Docker项目日趋庞大,架构上需要 进行拆分(开源项目的思路)

      2. 可以被Kubernetes CRI 等项目使用 (通用化)

      3. 为广泛的行业合作打下基础

一句话概括:

containerd 提供核心容器服务的接口 标准,上层的容器化应用平台将直接使 用 containerd 提供的接口。

2.2、 Containerd技术发展方向

    

      1. 简洁的接口设计: 基于 gRPC 的 API 和 client library

      2. 完整的 OCI 支持: runtime 和 image spec

      3. 良好的容器核心功能: 健壮、稳定、高效、可移植

      4. 松耦合:使 image、filesystem、runtime 解耦,实现插件式的扩展和重用

      5. https://github.com/containerd/containerd

三 、Containerd-shim

它是 containerd 的组件,是容器的运 行时载体,我们在 docker 宿主机上看 到的 shim 也正是代表着一个个通过调 用 containerd 启动的 docker 容器。

安装路径: /usr/bin/docker-containerd-shim

四、 RunC

  1. RunC 是一个轻量级的工具,它是用来运行容器的,且只做这一件事。

  2. 通过runc,可以不用通过 docker 引擎直接运行容器。

  3. runC 是标准化的产物,它根据 OCI 标准来创建和运行容器。而 OCI(Open Container Initiative)组织,旨在围绕容器格式和运行时制定一个开放的工业化标准。

  4. RunC 作为标准化容器运行时的一个实现,已被 docker 内置为默认的容器运行时.

  5. https://github.com/opencontainers/runc mkdir ~/mycontainer cd ~/mycontainer mkdir rootfs docker export $(docker create busybox) | tar -C rootfs -xvf – runc spec

  docker-runc create mycontainerid

  docker-runc start mycontainerid

  docker-runc states mycontainerid

  docker-runc kill mycontainerid 9

  docker-runc delete mycontainerid

五、 容器运行过程分析

  1.Docker客户端向 dockerd发起请求

  2.Dockerd从 Docker Hub上拉取镜像

  3.Dockerd使用镜像运行了一个容器并产 生了输出

  4.docker-containerd …….

  5.Dockerd把输出的内容返回给了 docker 客户端

  # ps afx | grep docker -A 1

六、 为什么没有 docker-runc

还是因为 docker-containerd-shim

  1. 允许容器运行时(即 runC)在启动容器之后退出,简单说就是不必为每个容器一直运行 一个容器运行时(runC)

   2. 即使在 containerd 和 dockerd 都挂掉的情况下,容器的标准 IO 和其它的文件描述 符也都是可用的

  3. 向 containerd 报告容器的退出状态

通过tcp方式访问dockerd(不建议)

ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

测试: # docker -H tcp://127.0.0.1:2375 info

docker组件介绍的更多相关文章

  1. Docker简单介绍

    Docker简单介绍 Docker是一个能够把开发的应用程序非常方便地部署到容器的开源引擎.由Docker公司团队编写,基于Apache 2.0开源授权协议发行.Docker的主要目的例如以下: 提供 ...

  2. 008、Docker 组件如何协作(2018-12-25 周二)

    参考https://www.cnblogs.com/CloudMan6/p/6774519.html   以httpd为例,介绍Docker组件间如何协作   root@docker-lab:~# d ...

  3. 学习Mysql过程中拓展的其他技术栈:Docker入门介绍

    一.Docker的介绍和安装 1. Docker是什么 百度百科的介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linu ...

  4. Docker 容器介绍

    Docker 容器介绍 Docker 是一个基于 Go 语言的开源应用容器引擎,它既能实现虚拟化,又可用于将应用服务打包成轻量.可移植的容器,从而可以发布到任何 Linux 平台.除了优秀了沙箱机制外 ...

  5. 开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)

    在这个.NET组件的介绍系列中,受到了很多园友的支持,一些园友(如:数据之巅. [秦时明月]等等这些大神 )也给我提出了对应的建议,我正在努力去改正,有不足之处还望大家多多包涵.在传播一些简单的知识的 ...

  6. 免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)

    前面介绍了六种.NET组件,其中有一种组件是写文件的压缩和解压,现在介绍另一种文件的解压缩组件SharpZipLib.在这个组件介绍系列中,只为简单的介绍组件的背景和简单的应用,读者在阅读时可以结合官 ...

  7. 免费高效实用的.NET操作Excel组件NPOI(.NET组件介绍之六)

    很多的软件项目几乎都包含着对文档的操作,前面已经介绍过两款操作文档的组件,现在介绍一款文档操作的组件NPOI. NPOI可以生成没有安装在您的服务器上的Microsoft Office套件的Excel ...

  8. 免费开源的DotNet任务调度组件Quartz.NET(.NET组件介绍之五)

    很多的软件项目中都会使用到定时任务.定时轮询数据库同步,定时邮件通知等功能..NET Framework具有“内置”定时器功能,通过System.Timers.Timer类.在使用Timer类需要面对 ...

  9. 免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)

    在生活中有一种东西几乎已经快要成为我们的另一个电子”身份证“,那就是二维码.无论是在软件开发的过程中,还是在普通用户的日常中,几乎都离不开二维码.二维码 (dimensional barcode) , ...

随机推荐

  1. 九、JSP入门(2)

    day12 JSP指令 1 JSP指令概述 JSP指令的格式:<%@指令名 attr1=”” attr2=”” %>,一般都会把JSP指令放到JSP文件的最上方,但这不是必须的. JSP中 ...

  2. Mac OS Sierra安装源不能设置任何来源(anywhere)

    执行命令 sudo spctl --master-disable 此时再打开 System Preferences -> Security&Privacy 即可看到Anywhere

  3. apache-2.4.6 mod_bw-0.92 实现限速上传或下载

    下载 mod_bw  wget http://ivn.cl/files/source/mod_bw-0.92.tgz 解压到mod_bw tar -zxvf mod_bw-0.92.tgz -C mo ...

  4. disconf安装问题

    安装参考文档:https://blog.csdn.net/fengyao1995/article/details/66491226 主要说说遇到的几个问题 1.在步骤6构建的时候,用jdk1.8,进行 ...

  5. PAT甲级1103 Integer Factorization【dfs】【剪枝】

    题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805364711604224 题意: 给定一个数n,要求从1~n中找 ...

  6. 聚焦AI实践,2019 A2M峰会将在上海举行!

    18年,BERT重磅发布,刷新了很多NLP的任务的最好性能:KENSHO等智能化应用的成功应用,让知识图谱在证券行业的建设思路和应用实践成为业内较为关注的问题:强化学习也在与人类的对战游戏中独领风骚: ...

  7. task CancellationTokenSource

    使用CancellationTokenSource对象需要与Task对象进行配合使用,Task会对当前运行的状态进行控制(这个不用我们关心是如何控制的).而CancellationTokenSourc ...

  8. Notepad++ 64位 插件管理器 PluginManager 安装 更新

    32位的自带不多说,64位的内置不带,需要自己去找,这里给个地址: https://github.com/bruderstein/nppPluginManager/releases 地址里面有64位管 ...

  9. 自学stm32就要记住入了这个“大坑”要耐得住寂寞

    在现在的MCU使用量中,STM32绝对是翘楚!因为现在使用STM32开发产品的公司非常多,这主要得益于ST公司对自家MCU的大力推广,而且ST对自己MCU也配套了一系列开发软件,也有相应的硬件开发板供 ...

  10. Mac mini 使用打印机

    扫描与打印机使用: 第一步:左上角黑苹果->系统偏好设置->打印机与扫描仪->设置打印机 第二步:Launchpad -> 预览 -> 文件 -> 从扫描仪导入-& ...