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

@@ -1,8 +1,10 @@
## 挂载主机目录
本节涵盖了相关内容与详细描述主要探讨以下几个方面
### 什么是绑定挂载
Bind Mount绑定挂载**宿主机的目录或文件**直接挂载到容器中容器可以读写宿主机的文件系统
Bind Mount (绑定挂载) **宿主机的目录或文件**直接挂载到容器中容器可以读写宿主机的文件系统
```mermaid
flowchart LR
@@ -32,6 +34,10 @@ flowchart LR
| **适用场景** | 开发环境配置文件 | 生产数据持久化 |
| **备份** | 直接访问文件 | 需要通过 Docker |
#### 概述
总体概述了以下内容
#### 选择建议
| 需求 | 推荐方案 |
@@ -47,7 +53,9 @@ flowchart LR
### 基本语法
#### 使用 --mount推荐
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### 使用 --mount (推荐)
运行以下命令
@@ -57,7 +65,7 @@ $ docker run -d \
nginx
```
#### 使用 -v简写
#### 使用 -v (简写)
运行以下命令
@@ -79,6 +87,8 @@ $ docker run -d \
### 使用场景
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### 场景一开发环境代码同步
运行以下命令
@@ -182,7 +192,7 @@ $ docker run -d \
mysql
```
> **注意**挂载单个文件时如果宿主机上的文件被编辑器替换而非原地修改容器内仍是旧文件的 inode建议重启容器或挂载目录
> **注意**挂载单个文件时如果宿主机上的文件被编辑器替换 (而非原地修改)容器内仍是旧文件的 inode建议重启容器或挂载目录
---
@@ -221,7 +231,9 @@ $ docker inspect mycontainer --format '{{json .Mounts}}' | jq
### 常见问题
#### Q: 路径不存在报错
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### Q路径不存在报错
运行以下命令
@@ -231,9 +243,9 @@ docker: Error response from daemon: invalid mount config for type "bind":
bind source path does not exist: /not/exist
```
**解决**确保源路径存在或改用 `-v`会自动创建
**解决**确保源路径存在或改用 `-v` (会自动创建)
#### Q: 权限问题
#### Q权限问题
容器内用户可能无权访问挂载的文件
@@ -251,9 +263,9 @@ $ docker run -u root ...
$ docker run -u $(id -u):$(id -g) ...
```
#### Q: macOS/Windows 性能问题
#### QmacOS/Windows 性能问题
Docker Desktop Bind Mount 性能较差需要跨文件系统同步
Docker Desktop Bind Mount 性能较差 (需要跨文件系统同步)
```bash
## 使用 :cached 或 :delegated 提高性能macOS
@@ -271,7 +283,9 @@ $ docker run -v /host/path:/container/path:cached myapp
### 最佳实践
#### 1. 开发环境使用 Bind Mount
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### 1开发环境使用 Bind Mount
运行以下命令
@@ -281,7 +295,7 @@ $ docker run -v /host/path:/container/path:cached myapp
$ docker run -v $(pwd):/app -p 3000:3000 node npm run dev
```
#### 2. 生产环境使用 Volume
#### 2生产环境使用 Volume
运行以下命令
@@ -291,7 +305,7 @@ $ docker run -v $(pwd):/app -p 3000:3000 node npm run dev
$ docker run -v mysql_data:/var/lib/mysql mysql
```
#### 3. 配置文件使用只读挂载
#### 3配置文件使用只读挂载
运行以下命令
@@ -299,7 +313,7 @@ $ docker run -v mysql_data:/var/lib/mysql mysql
$ docker run -v /config/nginx.conf:/etc/nginx/nginx.conf:ro nginx
```
#### 4. 注意路径安全
#### 4注意路径安全
运行以下命令

View File

@@ -10,6 +10,8 @@
### 基本用法
如下代码块所示展示了相关示例
```bash
$ docker run --tmpfs /run:rw,noexec,nosuid,size=64m nginx
```

View File

@@ -1,5 +1,7 @@
## 数据卷
本节涵盖了相关内容与详细描述主要探讨以下几个方面
### 为什么需要数据卷
容器的存储层有一个关键问题**容器删除后数据就没了**
@@ -11,7 +13,7 @@ flowchart LR
Delete -->|数据都在容器 writable 层| Lost[DATA LOST! ❌]
```
数据卷Volume解决了这个问题它的生命周期独立于容器
数据卷 (Volume) 解决了这个问题它的生命周期独立于容器
---
@@ -29,7 +31,11 @@ flowchart LR
### 数据卷 vs 容器存储层
#### 容器存储层不推荐存储重要数据
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### 容器存储层 (不推荐存储重要数据)
如下代码块所示展示了相关示例
```mermaid
graph TD
@@ -43,7 +49,9 @@ graph TD
Delete[容器删除] -->|导致| DataLost[数据丢失 ❌]
```
#### 数据卷推荐
#### 数据卷 (推荐)
如下代码块所示展示了相关示例
```mermaid
graph TD
@@ -63,6 +71,8 @@ graph TD
### 数据卷基本操作
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### 创建数据卷
运行以下命令
@@ -104,13 +114,15 @@ $ docker volume inspect my-vol
**关键字段**
- `Mountpoint`数据卷在宿主机上的实际存储位置
- `Driver`存储驱动默认 local也可以用第三方驱动
- `Driver`存储驱动 (默认 local也可以用第三方驱动)
---
### 挂载数据卷
#### 方式一--mount推荐
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### 方式一--mount (推荐)
运行以下命令
@@ -129,7 +141,7 @@ $ docker run -d \
| `target` | 容器内挂载路径 |
| `readonly` | 可选只读挂载 |
#### 方式二-v简写
#### 方式二-v (简写)
运行以下命令
@@ -172,6 +184,8 @@ $ docker run -d \
### 使用场景示例
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### 场景一数据库持久化
运行以下命令
@@ -242,6 +256,8 @@ $ docker run -d \
### 数据卷管理
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### 删除数据卷
运行以下命令
@@ -280,6 +296,8 @@ $ docker volume prune -f
### 数据卷备份与恢复
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### 备份数据卷
运行以下命令
@@ -360,13 +378,15 @@ $ docker run -v mydata:/app/data nginx
$ docker run -v /host/path:/app/data nginx
```
详见 [绑定挂载](bind-mounts.md) 章节
详见[绑定挂载](bind-mounts.md)章节
---
### 常见问题
#### Q: 如何知道容器使用了哪些数据卷
本节涵盖了相关内容与详细描述主要探讨以下几个方面
#### Q如何知道容器使用了哪些数据卷
运行以下命令
@@ -374,7 +394,7 @@ $ docker run -v /host/path:/app/data nginx
$ docker inspect container_name --format '{{json .Mounts}}' | jq
```
#### Q: 数据卷的数据在哪里
#### Q数据卷的数据在哪里
运行以下命令
@@ -390,7 +410,7 @@ $ docker volume inspect my-vol
> **注意**不建议直接修改 Mountpoint 中的文件应通过容器操作
#### Q: 如何在不同机器间迁移数据卷
#### Q如何在不同机器间迁移数据卷
1. 在源机器备份`docker run --rm -v mydata:/data -v $(pwd):/backup alpine tar czf /backup/data.tar.gz -C /data .`
2. 传输 tar.gz 文件