Docker 架构
学习目标
- 理解 Client-Daemon 架构
- 了解各组件职责
架构图
┌─────────────────────────────────────────┐
│ Docker Host │
│ │
│ ┌──────────┐ ┌──────────────────┐ │
│ │ Docker │ │ Docker Daemon │ │
│ │ Client │───▶│ (dockerd) │ │
│ │ (docker) │ │ │ │
│ └──────────┘ └────────┬─────────┘ │
│ │ │
│ ┌────────────┼──────────┐ │
│ ▼ ▼ ▼ │
│ ┌────────┐ ┌────────┐ ┌──────┐│
│ │Container│ │Container│ │Image ││
│ │ 1 │ │ 2 │ │Store ││
│ └────────┘ └────────┘ └──────┘│
│ │
└─────────────────────────────────────────┘
│
▼
┌──────────────┐
│ Docker Hub │
│ (Registry) │
└──────────────┘
组件说明
| 组件 | 作用 |
|---|---|
| Docker Client | 命令行工具,发送指令给 Daemon |
| Docker Daemon | 后台服务,管理容器/镜像/网络 |
| Container | 运行中的容器实例 |
| Image Store | 本地镜像存储 |
| Registry | 远程镜像仓库(Docker Hub) |
工作流程
docker run nginx
1. Client → Daemon: "运行 nginx"
2. Daemon → Image Store: 本地有 nginx 吗?
3. 没有 → Daemon → Registry: 拉取 nginx
4. Daemon: 创建容器
5. Daemon: 启动容器
6. Client: 返回容器 ID
小结
| 组件 | 说明 |
|---|---|
| Client | 发送命令 |
| Daemon | 执行管理 |
| Registry | 远程仓库 |
| Container | 运行实例 |