diff --git a/08_data/8.1_volume.md b/08_data/8.1_volume.md index 379e058..430d4d2 100644 --- a/08_data/8.1_volume.md +++ b/08_data/8.1_volume.md @@ -138,10 +138,11 @@ $ docker run -d \ | 特性 | --mount | -v | |------|---------|-----| | 语法 | 键值对,更清晰 | 冒号分隔,更简洁 | -| 自动创建卷 | source 不存在会自动创建 | 自动创建 | -| 推荐程度 | ✅ 推荐 (更明确)| 常用 (更简洁)| +| **数据卷 (Volume)** 挂载行为 | 卷不存在会自动创建,与 `-v` 结果一致 | 卷不存在会自动创建 | +| **绑定挂载 (Bind Mount)** 行为 | ⭐ **宿主机路径不存在会报错**,不会自动创建 | 宿主机路径不存在会**自动创建为目录** | +| 推荐程度 | ✅ 推荐 (更明确安全,避免误创建)| 常用 (更简洁)| -> **提示**:很多人误以为 `--mount` 遇到目标不存在时总是报错。实际上,那仅适用于**绑定挂载 (Bind Mount)**。对于**数据卷 (Volume)**,只要 `source` 指定的卷名称不存在,Docker 都会默默将其创建出来。 +> **提示**:官方更推荐使用 `--mount`。除了语法格式可读性更好之外,最重要的行为差异发生在 **绑定挂载 (Bind Mount)** 时:如果挂载的宿主机源路径尚未存在,`-v` 会擅自将其自动创建为一个空目录;而 `--mount` 则会严格检查并直接报错。这能有效避免因路径拼写错误而在宿主机上留下垃圾目录(以及导致的容器访问空目录问题)。而对于本节的**数据卷 (Volume)** 挂载而言,两者在目标指定的卷不存在时皆会自动创建卷,产生的结果是**完全一致**的。 #### 只读挂载 diff --git a/08_data/summary.md b/08_data/summary.md index 5c41f21..6470380 100644 --- a/08_data/summary.md +++ b/08_data/summary.md @@ -1,18 +1,12 @@ ## 本章小结 -| 要点 | 说明 | -|------|------| -| **作用** | 将宿主机目录挂载到容器 | -| **语法** | `-v /宿主机:/容器` 或 `--mount type=bind,...` | -| **只读** | 添加 `readonly` 或 `:ro` | -| **适用场景** | 开发环境、配置文件、日志 | -| **vs Volume** | Bind 更灵活,Volume 更适合生产 | +本章介绍了 Docker 的三种数据管理方式:数据卷 (Volume)、绑定挂载 (Bind Mount) 和 tmpfs 挂载。 -### 8.4.1 延伸阅读 - -- [数据卷](8.1_volume.md):Docker 管理的持久化存储 -- [tmpfs 挂载](8.3_tmpfs.md):内存临时存储 -- [Compose 数据管理](../11_compose/11.5_compose_file.md):Compose 中的挂载配置 +| 方式 | 特点 | 适用场景 | +|------|------|---------| +| **数据卷 (Volume)** | Docker 管理,生命周期独立于容器 | 数据库、应用数据(推荐生产环境) | +| **绑定挂载 (Bind Mount)** | 挂载宿主机目录,更灵活 | 开发环境、配置文件、日志 | +| **tmpfs 挂载** | 仅存储在内存中,容器停止即消失 | 临时敏感数据、高速缓存 | | 操作 | 命令 | |------|------| @@ -23,8 +17,10 @@ | 清理未用 | `docker volume prune` | | 挂载数据卷 | `-v name:/path` 或 `--mount source=name,target=/path` | -### 8.4.2 延伸阅读 +### 延伸阅读 +- [数据卷](8.1_volume.md):Docker 管理的持久化存储 - [绑定挂载](8.2_bind-mounts.md):挂载宿主机目录 - [tmpfs 挂载](8.3_tmpfs.md):内存中的临时存储 - [存储驱动](../12_implementation/12.4_ufs.md):Docker 存储的底层原理 +- [Compose 数据管理](../11_compose/11.5_compose_file.md):Compose 中的挂载配置