3-docker 架构和底层技术简介
Docker Platform
Docker 是一个平台。
- 提供了一个开发、打包、运行
app
的平台 - 把
app
和底层infrastructure
隔离开来
根据上图我们可以看出 Docker Engine 把上层的 app 应用程序和底层的物理设备或虚拟设备进行了隔离,然后我们在 docker 之上做操作。
Docker Engine
Docker 是一个 CS 架构
- 后台进程(dockerd)
用于维护我们常见的操作,比如说image
container
net
管理。 - REST API Server
连接client
和server
- CLI接口(docker)
操作者使用的client端
总体架构
-
Client
这部分就是我们通常在命令行内所打的命令,如:
docker pull gitlab
-
DOCKER_HOST
是一台启动了 Docker daemon (dockerd)的机器,当然这个dockerd
可以在本地也可以在远端,也就是说可以远程控制一台装有dockerd
的设备。一般来说 client和dockerd是在同一个机器上的。
那么 DOCKER_HOST 上主要有两个比较重要的概念:
- Containers - 容器/集装箱
- Images - 镜像
Docker 底层技术
我们知道docker 使用的技术并不是比较新的技术,而是很早就已经存在的技术。
- Namespace: 做隔离pid,net,ipc,mnt,uts
- Control groups : 做资源限制
- Union files systems : Container 和 image 的分层
这些都是 linux 自带的技术。