Docker 架构
Docker 的架构采用 客户端-服务器(Client-Server)模型,核心分为三部分:Docker 客户端、Docker 守护进程(Docker Daemon) 和 Docker 镜像仓库(Registry)。以下是简单架构概述:
1. Docker 客户端(Client)
- 用户通过命令行工具(如
docker run)或 API 与 Docker 交互。 - 客户端发送指令(如创建容器、拉取镜像)给 Docker 守护进程。
2. Docker 守护进程(Docker Daemon)
- 核心组件,常驻后台,负责管理 Docker 的核心功能:
- 构建镜像(通过
Dockerfile)。 - 运行容器(基于镜像创建实例)。
- 管理网络/存储(如卷、网络配置)。
- 与 Registry 通信(拉取/推送镜像)。
- 构建镜像(通过
3. Docker 镜像仓库(Registry)
- 存储和分发镜像的中心仓库:
- 公共仓库:如 Docker Hub(默认源,提供
nginx、mysql等官方镜像)。 - 私有仓库:可自建(如 Harbor),用于企业内部镜像托管。
- 公共仓库:如 Docker Hub(默认源,提供
4. 底层技术支持
Docker 依赖以下技术实现隔离和资源管理:
- Namespaces:进程、网络、文件系统等隔离(如每个容器有独立的 PID 命名空间)。
- Control Groups(cgroups):限制容器的 CPU、内存等资源。
- Union File System(如 Overlay2):实现镜像分层存储和容器可写层。
5. 架构流程图
用户输入命令
↓
Docker 客户端(Client)
↓ (通过 REST API 通信)
Docker 守护进程(Daemon)
├── 构建/运行容器
├── 管理本地镜像
↓ (拉取/推送)
Docker Registry(如 Docker Hub)
6. 关键特点
- 轻量级:容器共享主机内核,无需虚拟化整个操作系统。
- 可移植性:镜像包含所有依赖,跨环境一致运行。
- 模块化:通过组合多个容器(如 Nginx + MySQL)构建应用。
总结
Docker 通过 Client → Daemon → Registry 的分层协作,结合 Linux 内核技术,实现了高效的容器化部署。简单理解:用户命令 → 守护进程执行 → 镜像仓库支持。
浙公网安备 33010602011771号