持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第7天,点击查看活动详情
Docker平台
Docker提供了一个开发,打包与运行App的平台
Docker帮助把App层和底层infrastructure层隔离开
Docker Engine
Docker Engine自身是通过很多工具一起协同工作的,目的是创建和运行应用容器,例如 API、执行驱动、运行时、shim 进程等。
Docker Engine由如下主要的组件构成:Docker 客户端(Docker Client)、Docker 守护进程(Docker daemon)、containerd 以及 runc。它们共同负责容器的创建和运行。
最内部的是docer后台进程-dockerd,然后是REST API Server,最后对用户暴露的是CLI接口
后台有一个进程dockerd,用来维护一些常见的操作以及镜像管理,提供了一个API Server。
daemon 的主要功能包括镜像管理、镜像构建、REST API、身份验证、安全、核心网络以及编排。
通过下面的操作你可以观测到后台的docked的进程
此外还提供了CLI接口-docker(命令行输入的入口)。
是一个明显的C/S结构,CLI就是客户端,后端还是接口服务和管理。
DockerHost有两个重要的概念:容器和镜像--后面会讲解
还有一个Registry--存储镜像的仓库,类似github
client就是我们操作的地方
底层技术支持
docker不是一个创新技术,底层依赖了很多linux的技术:
Namespaces:做隔离pid,net,ipc,mnt,uts
Control groups:可以进行资源限制
Union file systems:保证Container和image的分层
这里后面再对docker熟悉之后可以继续摸索