mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-08-10 08:27:25 +00:00
Fix guide issues
This commit is contained in:
@@ -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) ...
|
||||
|
||||
#### Q:macOS/Windows 性能问题
|
||||
|
||||
在 Docker Desktop 上,Bind Mount 性能较差 (需要跨文件系统同步):
|
||||
在 Docker Desktop 上,Bind Mount 性能通常不如 Volume,因为数据需要在宿主机文件系统和 Linux VM 之间同步:
|
||||
|
||||
```bash
|
||||
## 使用 :cached 或 :delegated 提高性能(macOS)
|
||||
|
||||
Reference in New Issue
Block a user