Fix guide issues

This commit is contained in:
yeasy
2026-03-28 18:24:46 -07:00
parent 5a6a50ba97
commit 85f76aa6d9
28 changed files with 123 additions and 885 deletions
+6 -6
View File
@@ -2,7 +2,7 @@
### 8.2.1 什么是绑定挂载
Bind Mount (绑定挂载) **宿主机的目录或文件** 直接挂载到容器中容器可以读写宿主机的文件系统
Bind Mount (绑定挂载) **Docker daemon 所在主机** 上的目录或文件直接挂载到容器中容器可以读写这台主机的文件系统
```mermaid
flowchart LR
@@ -51,7 +51,7 @@ flowchart LR
### 8.2.3 基本语法
#### 使用 --mount推荐
#### 使用 `--mount`推荐
```bash
$ docker run -d \
@@ -59,7 +59,7 @@ $ docker run -d \
nginx
```
#### 使用 -v简写
#### 使用 `-v`简写
```bash
$ docker run -d \
@@ -75,7 +75,7 @@ $ docker run -d \
| 路径不存在时 | 直接报错 (Fail Fast) | 静默自动创建 **目录** |
| 推荐程度 | 推荐 | 常用 |
> ** 陷阱**如果不小心挂载了一个不存在的宿主机路径使用 `-v` 会在宿主机上静默创建一个 **空目录**即使你本来想挂载的是一个文件这常常会导致权限错误或应用无法正常读取这也正是为什么 Docker 官方更推荐使用 `--mount` 的原因它会遵循Fail Fast原则直接报错避免弄巧成拙
> ** 陷阱**如果不小心挂载了一个不存在的主机路径使用 `-v` 会在 **daemon 主机** 上静默创建一个空目录对于本地 Docker Desktop 用户这个主机通常就是本机对于远程 daemon这个主机就是远程机器这也 Docker 官方更推荐使用 `--mount` 的原因它会直接报错避免因路径拼写错误而挂错位置
---
@@ -213,7 +213,7 @@ $ docker run --mount type=bind,source=/not/exist,target=/app nginx
docker: Error response from daemon: invalid mount config for type "bind":
bind source path does not exist: /not/exist
```
**解决**确保源路径存在改用 `-v` (会自动创建)
**解决**确保源路径存在若你确实需要自动创建目录改用 `-v`但要先确认创建位置就是你想要的主机路径
#### Q权限问题
@@ -235,7 +235,7 @@ $ docker run -u $(id -u):$(id -g) ...
#### QmacOS/Windows 性能问题
Docker Desktop Bind Mount 性能较差 (需要跨文件系统同步)
Docker Desktop Bind Mount 性能通常不如 Volume因为数据需要在宿主机文件系统和 Linux VM 之间同步
```bash
## 使用 :cached 或 :delegated 提高性能(macOS
+4 -2
View File
@@ -1,6 +1,6 @@
## 8.3 tmpfs 挂载
`tmpfs` 挂载会把数据放在宿主机内存中而不是写入容器可写层或数据卷
`tmpfs` 挂载会把数据放在内存中而不是写入容器可写层或数据卷它只适用于 Linux 语义的容器环境适合需要快速读写但不要求持久化的数据
### 8.3.1 适用场景
@@ -20,13 +20,15 @@ $ docker run --mount type=tmpfs,destination=/run,tmpfs-size=67108864,tmpfs-mode=
```bash
$ docker run --tmpfs /run:size=64m nginx
```
> **注意**`--tmpfs` 支持的选项有限主要为 `size` `mode`如果需要更精细的控制 `noexec``nosuid`推荐使用 `--mount` 语法并通过 `tmpfs-mode` 参数设置权限
> **注意**`--tmpfs` 更适合简单场景如果你希望显式描述挂载点大小和权限`--mount type=tmpfs,...` 的可读性更好也更便于后续维护
### 8.3.3 注意事项
- 容器停止后`tmpfs` 数据会丢失
- `tmpfs` 占用宿主机内存建议显式限制大小
- 不适合需要持久化的数据
- `tmpfs` 不适合多个容器共享同一份数据也不适合当作跨重启的缓存层
- 在内存压力较高时部分数据可能受系统交换机制影响因此不要把 `tmpfs` 当作绝对不会落盘的安全边界
### 8.3.4 Volume / Bind Mount 对比