1 / 7
文档名称:

Docker组件-源码编译安装使用总结.docx

格式:docx   大小:155KB   页数:7页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

Docker组件-源码编译安装使用总结.docx

上传人:科技星球 2021/6/22 文件大小:155 KB

下载得到文件列表

Docker组件-源码编译安装使用总结.docx

相关文档

文档介绍

文档介绍:用总结
Docker 组件介绍,源码编译安装、使
◎ UT001641/文
docker 组件和历史
Docker 引擎是用来运行和管理容器的核心软件。通常人们会简单地将其代指为 Docker 或Docker 平台。如果你对 VMware 略知一二,那么可以将 Docker 引擎理解为 ESXi 的角色。
基于开放容器计划(OCI)相关标准的要求, Docker 引擎采用了模块化的设计原则,其组件是可替换的。从多个角度来看,Docker 引擎就像汽车引擎——二者都是模块化的,并且由许多可交换的部件组成。
汽车引擎由许多专用的部件协同工作,从而使汽车可以行驶,例如进气管、节气门、气缸、火花塞、排气管等。
Docker 引擎由许多专用的工具协同工作,从而可以创建和运行容器,例如 API、执行驱动、运行时、shim 进程等。Docker 引擎由如下主要的组件构成: Docker 客户端(Docker Client)、Docker 守护进程
(Docker daemon)、containerd 以及 runc。它们共同负责容器的创建和运行。
总体逻辑如下图所示。
Docker 首次发布时,Docker 引擎由两个核心组件构成:LXC 和 Docker daemon。
Docker daemon 是单一的二进制文件,包含诸如 Docker 客户端、Docker API、容器运行时、镜像构建等。
LXC 提供了对诸如命名空间(Namespace)和控制组(CGroup)等基础工具的操作能力,它们是基于 Linux 内核的容器虚拟化技术。
下 图 阐 释 了 在 Docker 旧 版 本 中 ,Docker daemon、LXC 和操作系统之间的交互关系。
摆脱 LXC
对 LXC 的依赖自始至终都是个问题。
首先,LXC 是基于 Linux 的。这对于一个立志于跨平台的项目来说是个问题。
其次,如此核心的组件依赖于外部工具,这会给项目带来巨大风险,甚至影响其发展。
因此,Docker 公司开发了名为 Libcontainer 的自研工具,用于替代 LXC。
Libcontainer 的目标是成为与平台无关的工具, 可基于不同内核为 Docker 上层提供必要的容器交互功能。
在 Docker 版本中,Libcontainer 取代 LXC 成为默认的执行驱动。
摒弃大而全的 Docker daemon
随着时间的推移,Docker daemon 的整体性带来了越来越多的问题。难于变更、运行越来越慢。这并非生态(或 Docker 公司)所期望的。
Docker 公司意识到了这些问题,开始努力着手拆解这个大而全的 Docker daemon 进程,并将其模块化。
这项任务的目标是尽可能拆解出其中的功能特性,并用小而专的工具来实现它。这些小工具可以是可替换的,也可以被第三方拿去用于构建
图1
其他工具。
这一计划遵循了在 UNIX 中得以实践并验证过的一种软件哲学:小而专的工具可以组装为大型工具。这项拆解和重构 Docker 引擎的工作仍在进行
中。不过,所有容器执行和容器运行时的代码已经完全从 daemon 中移除,并重构为小而专的工具。
目前