style: apply global formatting fixes (struct, spacing, zhlint)

This commit is contained in:
Baohua Yang
2026-02-21 11:08:52 -08:00
parent ad68b2d973
commit 79ac9c639a
159 changed files with 1708 additions and 882 deletions

View File

@@ -27,31 +27,31 @@ graph LR
Docker 的内部架构如同洋葱一样分层每一层专注解决特定问题
#### 1. Docker CLI客户端
#### 1Docker CLI (客户端)
用户与 Docker 交互的主要方式它将用户命令 `docker run`转换为 API 请求发送给 dockerd
用户与 Docker 交互的主要方式它将用户命令 ( `docker run`) 转换为 API 请求发送给 dockerd
#### 2. Dockerd守护进程
#### 2Dockerd (守护进程)
Docker 的大脑
- 监听 API 请求
- 管理 Docker 对象镜像容器网络
- 管理 Docker 对象 (镜像容器网络)
- 编排下层组件完成工作
#### 3. Containerd高级运行时
#### 3Containerd (高级运行时)
行业标准的容器运行时CNCF 毕业项目
- 管理容器的完整生命周期启动停止
行业标准的容器运行时 (CNCF 毕业项目)
- 管理容器的完整生命周期 (启动停止)
- 镜像拉取与存储
- **不包含** 复杂的与容器无关的功能如构建API
- Kubernetes 也可以直接使用 containerd跳过 Docker
- **不包含**复杂的与容器无关的功能 (如构建API)
- Kubernetes 也可以直接使用 containerd (跳过 Docker)
#### 4. Runc低级运行时
#### 4Runc (低级运行时)
用于创建和运行容器的 CLI 工具
- 直接与内核交互Namespaces, Cgroups
- 直接与内核交互 (NamespacesCgroups)
- 遵循 OCI (Open Container Initiative) 规范
- **主要职责**根据配置启动一个容器然后退出将控制权交给容器进程
- **主要职责**根据配置启动一个容器然后退出 (将控制权交给容器进程)
#### 5. Shim
@@ -95,9 +95,9 @@ flowchart TD
Shim -.-> |8. Monitor IO/Exit| Container
```
1. **CLI**发送请求给**Dockerd**2.**Dockerd**解析请求调用**Containerd**3.**Containerd** 准备镜像转换为 OCI Bundle
4. **Containerd**创建**Shim** 进程
5. **Shim**调用**Runc**6.**Runc** 与系统内核交互创建 Namespaces Cgroups
1. **CLI** 发送请求给 **Dockerd**2**Dockerd** 解析请求调用 **Containerd**3**Containerd** 准备镜像转换为 OCI Bundle
4. **Containerd** 创建 **Shim** 进程
5. **Shim** 调用 **Runc**6**Runc** 与系统内核交互创建 Namespaces Cgroups
7. **Runc** 启动 nginx 进程后退出
8. **Shim** 接管容器 IO 和生命周期监控
@@ -108,7 +108,7 @@ flowchart TD
Docker Engine v29 (2025/2026) 开始架构进一步简化和标准化
- **Containerd 镜像存储 (Image Store)**默认启用Docker 直接使用 Containerd 的镜像管理能力不再维护自己的一套 graphdriver
- **优势**多平台镜像支持更好镜像拉取更快lazy pulling K8s 共享镜像
- **优势**多平台镜像支持更好镜像拉取更快 (lazy pulling) K8s 共享镜像
---
@@ -127,8 +127,8 @@ flowchart TD
end
```
- 使用轻量级虚拟机Apple Virtualization / WSL 2运行 Linux 内核
- 文件挂载Bind Mount需要跨越 VM 边界这也是文件 I/O 慢的原因
- 使用轻量级虚拟机 (Apple Virtualization / WSL 2) 运行 Linux 内核
- 文件挂载 (Bind Mount) 需要跨越 VM 边界 (这也是文件 I/O 慢的原因)
- 网络端口需要从宿主机转发到 VM
---