diff --git a/02_basic_concept/2.2_container.md b/02_basic_concept/2.2_container.md
index b10e505..6f422fc 100644
--- a/02_basic_concept/2.2_container.md
+++ b/02_basic_concept/2.2_container.md
@@ -18,16 +18,20 @@
flowchart TD
subgraph NormalProcess ["普通进程"]
direction TB
- N1["• 与其他进程共享系统资源
• 可以看到其他进程
• 共享网络和文件系统"]
+ N1["• 共享系统资源
• 共享网络
• 共享文件系统"]
end
subgraph ContainerProcess ["容器进程 (运行在宿主机内核上)"]
direction TB
- C1["• 有自己的进程空间(看不到宿主机上的其他进程)
• 有自己的网络(独立 IP、端口)
• 有自己的文件系统(独立的 root 目录)
• 有自己的用户(容器内的 root ≠ 宿主机的 root)"]
+ C1["• 独立进程空间
• 独立网络环境
• 独立文件系统
• 独立用户空间"]
end
```
-这种隔离是通过 Linux 内核的 **Namespace** 技术实现的。
+这种隔离是通过 Linux 内核的 **Namespace** 技术实现的。具体表现为:
+- **进程空间**:容器看不到宿主机上的其他进程。
+- **网络**:容器拥有独立的 IP、端口等网络资源。
+- **文件系统**:容器拥有独立的 root 目录。
+- **用户**:容器内的 root 用户不等于宿主机的 root 用户。
### 2.2.3 容器 vs 虚拟机:核心区别
diff --git a/03_install/3.7_mac.md b/03_install/3.7_mac.md
index 090429b..6ce5832 100644
--- a/03_install/3.7_mac.md
+++ b/03_install/3.7_mac.md
@@ -27,13 +27,13 @@ $ brew install --cask docker
如同 macOS 其它软件一样,安装也非常简单,双击下载的 `.dmg` 文件,然后将那只叫 [Moby](https://www.docker.com/blog/call-me-moby-dock/) 的鲸鱼图标拖拽到 `Application` 文件夹即可 (其间需要输入用户密码)。
-
+
### 3.7.3 运行
从应用中找到 Docker 图标并点击运行。
-
+
运行之后,会在右上角菜单栏看到多了一个鲸鱼图标,这个图标表明了 Docker 的运行状态。
diff --git a/04_image/4.5_build.md b/04_image/4.5_build.md
index f10fa94..2f8dd6b 100644
--- a/04_image/4.5_build.md
+++ b/04_image/4.5_build.md
@@ -64,7 +64,7 @@ FROM scratch
RUN echo '
Hello, Docker!
' > /usr/share/nginx/html/index.html
```
-* *exec* 格式:`RUN ["可执行文件", "参数1", "参数2"]`,这更像是函数调用中的格式。
+* *exec* 格式:`RUN [“可执行文件”, “参数1”, “参数2”]`,这更像是函数调用中的格式。
Dockerfile 中每一个指令都会建立一层,`RUN` 也不例外。每一个 `RUN` 的行为,就和刚才我们手工建立镜像的过程一样:新建立一层,在其上执行这些命令,执行结束后,`commit` 这一层的修改,构成新的镜像。
diff --git a/07_dockerfile/7.4_cmd.md b/07_dockerfile/7.4_cmd.md
index f5070a4..83588ef 100644
--- a/07_dockerfile/7.4_cmd.md
+++ b/07_dockerfile/7.4_cmd.md
@@ -14,9 +14,9 @@ CMD 有三种格式:
| 格式 | 语法 | 推荐程度 |
|------|------|---------|
-| **exec 格式**| `CMD ["可执行文件", "参数1", "参数2"]` | ✅**推荐** |
+| **exec 格式**| `CMD [“可执行文件”, “参数1”, “参数2”]` | ✅**推荐** |
| **shell 格式** | `CMD 命令 参数1 参数2` | ⚠️ 简单场景 |
-| **参数格式** | `CMD ["参数1", "参数2"]` | 配合 ENTRYPOINT |
+| **参数格式** | `CMD [“参数1”, “参数2”]` | 配合 ENTRYPOINT |
#### exec 格式 (推荐)
diff --git a/07_dockerfile/7.5_entrypoint.md b/07_dockerfile/7.5_entrypoint.md
index 9daabfd..f93a86a 100644
--- a/07_dockerfile/7.5_entrypoint.md
+++ b/07_dockerfile/7.5_entrypoint.md
@@ -12,7 +12,7 @@
| 格式 | 语法 | 推荐程度 |
|------|------|---------|
-| **exec 格式**| `ENTRYPOINT ["可执行文件", "参数1"]` | ✅**推荐** |
+| **exec 格式**| `ENTRYPOINT [“可执行文件”, “参数1”]` | ✅**推荐** |
| **shell 格式** | `ENTRYPOINT 命令 参数` | ⚠️ 不推荐 |
```docker
diff --git a/07_dockerfile/summary.md b/07_dockerfile/summary.md
index 68ba6f5..ad17158 100644
--- a/07_dockerfile/summary.md
+++ b/07_dockerfile/summary.md
@@ -127,7 +127,7 @@
| 要点 | 说明 |
|------|------|
| **作用** | 指定容器启动时的默认命令 |
-| **推荐格式** | exec 格式 `CMD ["程序", "参数"]` |
+| **推荐格式** | exec 格式 `CMD [“程序”, “参数”]` |
| **覆盖方式** | `docker run image 新命令` |
| **与 ENTRYPOINT** | CMD 作为 ENTRYPOINT 的默认参数 |
| **核心原则** | 应用必须在前台运行 |
diff --git a/08_data/8.2_bind-mounts.md b/08_data/8.2_bind-mounts.md
index 94ead63..dcbe234 100644
--- a/08_data/8.2_bind-mounts.md
+++ b/08_data/8.2_bind-mounts.md
@@ -7,18 +7,24 @@ Bind Mount (绑定挂载) 将 **宿主机的目录或文件** 直接挂载到容
```mermaid
flowchart LR
subgraph Host ["宿主机"]
- direction TB
- Dir1["/home/user/code/
├── index.html
├── style.css
└── app.js"]
+ Dir1["/home/user/code/"]
end
subgraph Container ["容器"]
- direction TB
- Dir2["/usr/share/nginx/html/
(同一份文件)"]
+ Dir2["/usr/share/nginx/html/"]
end
Dir1 <-->|Bind Mount| Dir2
```
+目录结构(同一份文件):
+```text
+/home/user/code/ (或 /usr/share/nginx/html/)
+├── index.html
+├── style.css
+└── app.js
+```
+
---
### 8.2.2 Bind Mount vs Volume
diff --git a/17_ecosystem/README.md b/17_ecosystem/README.md
index dd7079d..783bfc2 100644
--- a/17_ecosystem/README.md
+++ b/17_ecosystem/README.md
@@ -4,3 +4,8 @@
- **Fedora CoreOS**:专为容器化工作负载设计的操作系统。
- **Podman**:兼容 Docker CLI 的下一代无守护进程容器引擎。
+- **Buildah**:无需守护进程的 OCI 容器镜像构建工具。
+- **Skopeo**:远程检查和管理容器镜像的利器。
+- **containerd**:作为现代容器生态基石的核心容器运行时。
+- **安全容器运行时**:通过提供更强隔离性来保证安全的技术方案(如 Kata Containers、gVisor)。
+- **WebAssembly**:一种极具潜力的轻量级跨平台二进制指令格式。
diff --git a/17_ecosystem/summary.md b/17_ecosystem/summary.md
index de1bcb3..d9e8405 100644
--- a/17_ecosystem/summary.md
+++ b/17_ecosystem/summary.md
@@ -5,9 +5,14 @@ Docker 并非容器生态的唯一选择,了解其他工具有助于根据场
| 项目 | 定位 | 特点 |
|------|------|------|
| **Fedora CoreOS** | 容器化操作系统 | 自动更新、不可变基础设施、专为运行容器设计 |
-| **Podman** | 容器引擎 | 无守护进程、兼容 Docker CLI、支持 Rootless 模式 |
+| **Podman** | 容器管理引擎 | 无守护进程、兼容 Docker CLI、支持 Rootless 模式、支持原生 Pod |
+| **Buildah** | 镜像构建工具 | Daemonless 工作模式、灵活的脚本化构建能力 |
+| **Skopeo** | 镜像仓库管理 | 无需拉取即可检查远端镜像、跨仓库/格式无缝迁移镜像 |
+| **containerd** | 核心底层运行时 | 稳定高效、符合 CRI 规范、是 Docker 的基石之一 |
+| **安全容器** | 强隔离沙箱运行 | 利用轻量级虚拟机 (Kata) 或用户态内核 (gVisor) 防止越狱,极其安全 |
+| **Wasm** | 新型工作负载 | 体积极小、冷启动超快且具备跨平台及高度特征化沙盒能力的后端架构新方向 |
-### 17.4.1 Podman vs Docker
+### Podman vs Docker
两者的主要区别:
@@ -19,7 +24,7 @@ Docker 并非容器生态的唯一选择,了解其他工具有助于根据场
| **Pod 支持** | 不支持 | 原生支持 Pod 概念 |
| **Compose** | docker compose | podman-compose 或兼容模式 |
-### 17.4.2 延伸阅读
+### 延伸阅读
- [底层实现](../12_implementation/README.md):容器技术的内核基础
- [安全](../18_security/README.md):容器安全实践
diff --git a/19_observability/summary.md b/19_observability/summary.md
index 3415d26..202a999 100644
--- a/19_observability/summary.md
+++ b/19_observability/summary.md
@@ -1,4 +1,4 @@
-# 本章小结
+## 本章小结
本章从两个维度介绍了容器可观测性:
diff --git a/21_case_devops/21.2_github_actions.md b/21_case_devops/21.2_github_actions.md
index 273aea1..c99dfa3 100644
--- a/21_case_devops/21.2_github_actions.md
+++ b/21_case_devops/21.2_github_actions.md
@@ -1,4 +1,4 @@
-# 21.2 GitHub Actions
+## 21.2 GitHub Actions
GitHub [Actions](https://github.com/features/actions) 是 GitHub 推出的一款 CI/CD 工具。
diff --git a/21_case_devops/21.3_drone.md b/21_case_devops/21.3_drone.md
index cb00eee..51d53ce 100644
--- a/21_case_devops/21.3_drone.md
+++ b/21_case_devops/21.3_drone.md
@@ -1,4 +1,4 @@
-# 21.3 Drone
+## 21.3 Drone
基于 `Docker` 的 `CI/CD` 工具 `Drone`,所有编译、测试的流程都在容器中进行。
diff --git a/21_case_devops/21.4_drone_demo.md b/21_case_devops/21.4_drone_demo.md
index 5efe2ac..b31f799 100644
--- a/21_case_devops/21.4_drone_demo.md
+++ b/21_case_devops/21.4_drone_demo.md
@@ -1,4 +1,4 @@
-# 21.4 Drone Demo
+## 21.4 Drone Demo
## 21.4.1 Demo 项目说明
diff --git a/21_case_devops/21.5_ide.md b/21_case_devops/21.5_ide.md
index b217ff0..972d5e1 100644
--- a/21_case_devops/21.5_ide.md
+++ b/21_case_devops/21.5_ide.md
@@ -1,4 +1,4 @@
-# 21.5 在 IDE 中使用 Docker
+## 21.5 在 IDE 中使用 Docker
使用 IDE 进行开发,往往要求本地安装好工具链。一些 IDE 支持 Docker 容器中的工具链,这样充分利用了 Docker 的优点,而无需在本地安装。
diff --git a/SUMMARY.md b/SUMMARY.md
index c14ff91..b53f774 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -148,6 +148,11 @@
* [17.1 Fedora CoreOS 简介](17_ecosystem/17.1_coreos_intro.md)
* [17.2 Fedora CoreOS 安装](17_ecosystem/17.2_coreos_install.md)
* [17.3 podman - 下一代 Linux 容器工具](17_ecosystem/17.3_podman.md)
+ * [17.4 Buildah - 容器镜像构建工具](17_ecosystem/17.4_buildah.md)
+ * [17.5 Skopeo - 容器镜像管理工具](17_ecosystem/17.5_skopeo.md)
+ * [17.6 containerd - 核心容器运行时](17_ecosystem/17.6_containerd.md)
+ * [17.7 安全容器运行时](17_ecosystem/17.7_secure_runtime.md)
+ * [17.8 WebAssembly 与容器](17_ecosystem/17.8_wasm.md)
* [本章小结](17_ecosystem/summary.md)
## 第四部分:实战篇
@@ -199,3 +204,4 @@
* [附录四:Dockerfile 最佳实践](appendix/best_practices.md)
* [附录五:如何调试 Docker](appendix/debug.md)
* [附录六:资源链接](appendix/resources.md)
+ * [附录七:术语表](appendix/glossary.md)
diff --git a/_images/cmd_logic.jpg b/_images/cmd_logic.jpg
new file mode 100644
index 0000000..d686f28
Binary files /dev/null and b/_images/cmd_logic.jpg differ
diff --git a/_images/cmd_logic.png b/_images/cmd_logic.png
deleted file mode 100644
index d8deeb2..0000000
Binary files a/_images/cmd_logic.png and /dev/null differ
diff --git a/_images/install-mac-apps.jpg b/_images/install-mac-apps.jpg
new file mode 100644
index 0000000..4388f41
Binary files /dev/null and b/_images/install-mac-apps.jpg differ
diff --git a/_images/install-mac-apps.png b/_images/install-mac-apps.png
deleted file mode 100644
index 206ecd1..0000000
Binary files a/_images/install-mac-apps.png and /dev/null differ
diff --git a/_images/install-mac-dmg.jpg b/_images/install-mac-dmg.jpg
new file mode 100644
index 0000000..d7839ce
Binary files /dev/null and b/_images/install-mac-dmg.jpg differ
diff --git a/_images/install-mac-dmg.png b/_images/install-mac-dmg.png
deleted file mode 100644
index 5c251db..0000000
Binary files a/_images/install-mac-dmg.png and /dev/null differ
diff --git a/appendix/README.md b/appendix/README.md
index 7159aff..a0c0fce 100644
--- a/appendix/README.md
+++ b/appendix/README.md
@@ -10,5 +10,4 @@
* [**Dockerfile 最佳实践**](best_practices.md):提供编写高效、安全 Dockerfile 的指导原则。
* [**如何调试 Docker**](debug.md):介绍 Docker 调试技巧和工具。
* [**资源链接**](resources.md):推荐更多 Docker 相关的学习资源。
-* **术语词表 (出版统一版)**:统一全书中英文术语、缩写与命令写法。(本仓库暂未收录对应文件)
-* **出版清稿规范 (图号与章节风格)**:统一图号命名、图题写法与章节风格。(本仓库暂未收录对应文件)
+* [**术语词表**](glossary.md):统一全书中英文术语、缩写与命令写法。
diff --git a/appendix/best_practices.md b/appendix/best_practices.md
index 9a79822..b20c007 100644
--- a/appendix/best_practices.md
+++ b/appendix/best_practices.md
@@ -174,9 +174,9 @@ RUN apt-get update && apt-get install -y \
#### CMD
-`CMD` 指令用于执行目标镜像中包含的软件,可以包含参数。`CMD` 大多数情况下都应该以 `CMD ["executable", "param1", "param2"...]` 的形式使用。因此,如果创建镜像的目的是为了部署某个服务 (比如 `Apache`),你可能会执行类似于 `CMD ["apache2", "-DFOREGROUND"]` 形式的命令。我们建议任何服务镜像都使用这种形式的命令。
+`CMD` 指令用于执行目标镜像中包含的软件,可以包含参数。`CMD` 大多数情况下都应该以 `CMD ['executable', 'param1', 'param2'...]` 的形式使用。因此,如果创建镜像的目的是为了部署某个服务 (比如 `Apache`),你可能会执行类似于 `CMD ['apache2', '-DFOREGROUND']` 形式的命令。我们建议任何服务镜像都使用这种形式的命令。
-多数情况下,`CMD` 都需要一个交互式的 `shell` (bash,Python,perl 等),例如 `CMD ["perl", "-de0"]`,或者 `CMD ["PHP", "-a"]`。使用这种形式意味着,当你执行类似 `docker run -it python` 时,你会进入一个准备好的 `shell` 中。`CMD` 应该在极少的情况下才能以 `CMD ["param", "param"]` 的形式与 `ENTRYPOINT` 协同使用,除非你和你的镜像使用者都对 `ENTRYPOINT` 的工作方式十分熟悉。
+多数情况下,`CMD` 都需要一个交互式的 `shell` (bash,Python,perl 等),例如 `CMD ['perl', '-de0']`,或者 `CMD ['PHP', '-a']`。使用这种形式意味着,当你执行类似 `docker run -it python` 时,你会进入一个准备好的 `shell` 中。`CMD` 应该在极少的情况下才能以 `CMD ['param', 'param']` 的形式与 `ENTRYPOINT` 协同使用,除非你和你的镜像使用者都对 `ENTRYPOINT` 的工作方式十分熟悉。
#### EXPOSE
diff --git a/appendix/command/docker.md b/appendix/command/docker.md
index 397c5c1..44ace71 100644
--- a/appendix/command/docker.md
+++ b/appendix/command/docker.md
@@ -66,7 +66,7 @@
如图 16-1 所示,Docker 常用客户端命令可按功能分组理解。
-
+
图 16-1 Docker 客户端命令分类示意图
diff --git a/format_report.txt b/format_report.txt
deleted file mode 100644
index 6e41aff..0000000
--- a/format_report.txt
+++ /dev/null
@@ -1 +0,0 @@
-Total issues found: 0