Docker容器技术:Docker的架构和底层技术

104 阅读1分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情

Docker平台

Docker提供了一个开发,打包与运行App的平台

Docker帮助把App层和底层infrastructure层隔离开

image.png

Docker Engine

Docker Engine自身是通过很多工具一起协同工作的,目的是创建和运行应用容器,例如 API、执行驱动、运行时、shim 进程等。

Docker Engine由如下主要的组件构成:Docker 客户端(Docker Client)、Docker 守护进程(Docker daemon)、containerd 以及 runc。它们共同负责容器的创建和运行。

image.png

最内部的是docer后台进程-dockerd,然后是REST API Server,最后对用户暴露的是CLI接口

后台有一个进程dockerd,用来维护一些常见的操作以及镜像管理,提供了一个API Server。

daemon 的主要功能包括镜像管理、镜像构建、REST API、身份验证、安全、核心网络以及编排。

通过下面的操作你可以观测到后台的docked的进程

image.png

此外还提供了CLI接口-docker(命令行输入的入口)。

是一个明显的C/S结构,CLI就是客户端,后端还是接口服务和管理。

image.png

DockerHost有两个重要的概念:容器和镜像--后面会讲解

还有一个Registry--存储镜像的仓库,类似github

client就是我们操作的地方

底层技术支持

docker不是一个创新技术,底层依赖了很多linux的技术:

Namespaces:做隔离pid,net,ipc,mnt,uts

Control groups:可以进行资源限制

Union file systems:保证Container和image的分层

这里后面再对docker熟悉之后可以继续摸索