(笔记总结自《微服务架构基础》书籍)
一、Docker的引擎
Docker Engine(Docker引擎)是Docker的核心部分,使用的是客户端-服务器(C/S)架构模式:
①Docker Cli:Docker命令行接口,可以在命令行中使用Docker相关指令与Docker守护进程进行交互,从而管理诸如image(镜像)、container(容器)、network(网关)和data volumes(数据卷)等实体。
②Rest API:表示应用程序API接口,开发者通过该APU可以与Docker的守护进程进行交互,从而指示后台进行相关操作。
(守护进程也叫精灵进程,是一种特殊的进程,一般在后台运行,不与任何终端相关联,并且周期性地执行某种任务或等待处理某些发生的事件,比如处理一些系统级的任务)
③docker daemon:表示Docker的服务端组件,它是Docker架构中运行在后台的一个守护进程,可以接收并处理来自命令行接口及API接口的指令,然后进行相应的后台操作。
二、Docker的架构
①Client(客户端) :即docker CLI,通过这个客户端使用Docker的相关指令与Docker守护进程进行交互,从而进行Docker镜像的创建、拉取和运行等操作。
②DOCKER_HOST(Docker主机):即Docker内部引擎运行的主机,主要指Docker daemon。可以通过Docker守护进程与客户端和Registry进行交互,从而管理镜像和容器等。
③Registry(注册中心):Docker镜像仓库。常用对象有Images(镜像)和Containers(容器)等。
三、Docker底层技术
①Namespaces(名称空间):Docker使用名称空间来为容器提供隔离的工作空间。
②Control groups(控制组):对程序进行资源限定,允许Docker引擎在容器间进行硬件资源共享以及随时进行限制和约束。
③Unoin file systems(联合文件系统):UnionFS是一种分层、轻量级并且高性能的文件系统,支持将文件系统的修改作为一次提交来一层层地叠加,同时可以将不同的目录挂载到同一个虚拟文件系统下。不同Docker容器可以共享一些基础的文件系统层,与自己独有的改动层一起使用,从而提高存储效率。
④Container format(容器格式):Docker引擎将名称空间、控制组和联合文件系统组合成一个叫做容器格式的整体。当前默认的容器格式是libcontainer。