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

@@ -12,7 +12,7 @@ Docker 做的事情类似:无论你的应用是用 Python、Java、Node.js 还
### Docker 的核心价值
笔者认为Docker 解决的是软件开发中最古老的问题之一**"在我机器上明明能跑啊"**
笔者认为Docker 解决的是软件开发中最古老的问题之一**在我机器上明明能跑啊**
```mermaid
flowchart LR
@@ -44,7 +44,7 @@ flowchart LR
### Docker vs 虚拟机
很多人第一次接触 Docker 时会问**"这不就是虚拟机吗"**答案是**不是而且差别很大**
很多人第一次接触 Docker 时会问**这不就是虚拟机吗**答案是**不是而且差别很大**
#### 传统虚拟机
@@ -68,18 +68,22 @@ flowchart LR
| **隔离级别** | 进程级隔离 | 完全隔离 |
| **单机数量** | 可运行上千个 | 通常几十个 |
> 笔者经常用这个类比来解释虚拟机像是每个应用都住在一栋独立的房子里有自己的地基水电系统而容器像是大家住在同一栋公寓楼里的不同房间共享地基和水电系统但各自独立
> 笔者经常用这个类比来解释虚拟机像是每个应用都住在一栋独立的房子里 (有自己的地基水电系统)而容器像是大家住在同一栋公寓楼里的不同房间 (共享地基和水电系统但各自独立)
### Docker 的技术基础
Docker 使用 [Go 语言](https://golang.google.cn/) 开发,基于 Linux 内核的以下技术:
Docker 使用 [Go 语言](https://golang.google.cn/)开发,基于 Linux 内核的以下技术:
- **[Namespace](https://en.wikipedia.org/wiki/Linux_namespaces)**:实现资源隔离进程、网络、文件系统等
- **[Cgroups](https://zh.wikipedia.org/wiki/Cgroups)**:实现资源限制CPU、内存、I/O 等
- **[Union FS](https://en.wikipedia.org/wiki/Union_mount)**:实现分层存储如 OverlayFS
- **[Namespace](https://en.wikipedia.org/wiki/Linux_namespaces)**:实现资源隔离 (进程、网络、文件系统等)
- **[Cgroups](https://zh.wikipedia.org/wiki/Cgroups)**:实现资源限制 (CPU、内存、I/O 等)
- **[Union FS](https://en.wikipedia.org/wiki/Union_mount)**:实现分层存储 (如 OverlayFS)
> 如果你对这些底层技术感兴趣可以阅读本书的[底层实现](../14_implementation/README.md)章节
#### 概述
总体概述了以下内容
#### Docker 架构演进
Docker 的底层实现经历了多次演进
@@ -95,14 +99,14 @@ flowchart LR
end
```
- **LXC**2013Docker 最初基于 Linux Containers
- **libcontainer**2014v0.7Docker 自研的容器运行时
- **runC**2015v1.11捐献给 OCI 的标准容器运行时
- **LXC** (2013)Docker 最初基于 Linux Containers
- **libcontainer** (2014v0.7)Docker 自研的容器运行时
- **runC** (2015v1.11)捐献给 OCI 的标准容器运行时
- **containerd**高级容器运行时管理容器生命周期
![Docker 架构](../_images/docker-on-linux.png)
> `runc` 是一个 Linux 命令行工具用于根据 [OCI 容器运行时规范](https://github.com/opencontainers/runtime-spec) 创建和运行容器。
> `runc` 是一个 Linux 命令行工具用于根据 [OCI 容器运行时规范](https://github.com/opencontainers/runtime-spec)创建和运行容器。
> `containerd` 是一个守护程序它管理容器生命周期提供了在一个节点上执行容器和管理镜像的最小功能集
@@ -113,8 +117,8 @@ flowchart LR
Docker 的发展历程
- **2013 3 **开源发布
- **2013 年底**dotCloud 公司改名为 Docker, Inc.
- **2015 **成立 [开放容器联盟OCI](https://opencontainers.org/),推动容器标准化
- **至今**[GitHub 项目](https://github.com/moby/moby) 超过 7 万星标
- **2013 年底**dotCloud 公司改名为 DockerInc
- **2015 **成立[开放容器联盟 (OCI)](https://opencontainers.org/),推动容器标准化
- **至今**[GitHub 项目](https://github.com/moby/moby)超过 7 万星标
Docker 的成功推动了整个容器生态的发展催生了 KubernetesPodman 等众多相关项目笔者认为Docker 最大的贡献不仅是技术本身更是它**让容器技术从系统管理员的工具变成了每个开发者都能使用的标准工具**