Add more content and fix format

This commit is contained in:
Baohua Yang
2026-02-25 21:06:21 -08:00
parent dd449bc84f
commit ecab788013
119 changed files with 566 additions and 496 deletions

View File

@@ -1,6 +1,6 @@
## 8.2 数据卷
## 8.1 数据卷
### 8.2.1 为什么需要数据卷
### 8.1.1 为什么需要数据卷
容器的存储层有一个关键问题**容器删除后数据就没了**
@@ -15,7 +15,7 @@ flowchart LR
---
### 8.2.2 数据卷的特性
### 8.1.2 数据卷的特性
| 特性 | 说明 |
|------|------|
@@ -27,12 +27,10 @@ flowchart LR
---
### 8.2.3 数据卷 vs 容器存储层
### 8.1.3 数据卷 vs 容器存储层
#### 容器存储层 (不推荐存储重要数据)
如下代码块所示展示了相关示例
```mermaid
graph TD
subgraph Container [容器]
@@ -47,8 +45,6 @@ graph TD
#### 数据卷 (推荐)
如下代码块所示展示了相关示例
```mermaid
graph TD
subgraph Container [容器]
@@ -65,7 +61,7 @@ graph TD
---
### 8.2.4 数据卷基本操作
### 8.1.4 数据卷基本操作
#### 创建数据卷
@@ -107,7 +103,7 @@ $ docker volume inspect my-vol
---
### 8.2.5 挂载数据卷
### 8.1.5 挂载数据卷
#### 方式一--mount (推荐)
@@ -163,7 +159,7 @@ $ docker run -d \
---
### 8.2.6 使用场景示例
### 8.1.6 使用场景示例
#### 场景一数据库持久化
@@ -227,7 +223,7 @@ $ docker run -d \
---
### 8.2.7 数据卷管理
### 8.1.7 数据卷管理
#### 删除数据卷
@@ -261,7 +257,7 @@ $ docker volume prune -f
---
### 8.2.8 数据卷备份与恢复
### 8.1.8 数据卷备份与恢复
#### 备份数据卷
@@ -316,7 +312,7 @@ echo "Backed up ${VOLUME_NAME} to ${BACKUP_DIR}/${VOLUME_NAME}_${TIMESTAMP}.tar.
---
### 8.2.9 数据卷 vs 绑定挂载
### 8.1.9 数据卷 vs 绑定挂载
Docker 有两种主要的数据持久化方式
@@ -342,7 +338,7 @@ $ docker run -v /host/path:/app/data nginx
---
### 8.2.10 常见问题
### 8.1.10 常见问题
#### Q如何知道容器使用了哪些数据卷

View File

@@ -1,6 +1,6 @@
## 8.3 挂载主机目录
## 8.2 挂载主机目录
### 8.3.1 什么是绑定挂载
### 8.2.1 什么是绑定挂载
Bind Mount (绑定挂载) **宿主机的目录或文件** 直接挂载到容器中容器可以读写宿主机的文件系统
@@ -21,7 +21,7 @@ flowchart LR
---
### 8.3.2 Bind Mount vs Volume
### 8.2.2 Bind Mount vs Volume
| 特性 | Bind Mount | Volume |
|------|------------|--------|
@@ -45,7 +45,7 @@ flowchart LR
---
### 8.3.3 基本语法
### 8.2.3 基本语法
#### 使用 --mount (推荐)
@@ -73,7 +73,7 @@ $ docker run -d \
---
### 8.3.4 使用场景
### 8.2.4 使用场景
#### 场景一开发环境代码同步
@@ -125,7 +125,7 @@ $ docker run --rm -it \
---
### 8.3.5 只读挂载
### 8.2.5 只读挂载
防止容器修改宿主机文件
@@ -152,7 +152,7 @@ touch: /app/config/new.txt: Read-only file system
---
### 8.3.6 挂载单个文件
### 8.2.6 挂载单个文件
```bash
## 挂载 bash 历史记录
@@ -172,7 +172,7 @@ $ docker run -d \
---
### 8.3.7 查看挂载信息
### 8.2.7 查看挂载信息
```bash
$ docker inspect mycontainer --format '{{json .Mounts}}' | jq
@@ -203,7 +203,7 @@ $ docker inspect mycontainer --format '{{json .Mounts}}' | jq
---
### 8.3.8 常见问题
### 8.2.8 常见问题
#### Q路径不存在报错
@@ -251,7 +251,7 @@ $ docker run -v /host/path:/container/path:cached myapp
---
### 8.3.9 最佳实践
### 8.2.9 最佳实践
#### 1. 开发环境使用 Bind Mount

View File

@@ -1,16 +1,14 @@
## 8.4 tmpfs 挂载
## 8.3 tmpfs 挂载
`tmpfs` 挂载会把数据放在宿主机内存中而不是写入容器可写层或数据卷
### 8.4.1 适用场景
### 8.3.1 适用场景
- 临时缓存
- 会话数据
- 不希望落盘的敏感中间文件
### 8.4.2 基本用法
如下代码块所示展示了相关示例
### 8.3.2 基本用法
```bash
$ docker run --tmpfs /run:rw,noexec,nosuid,size=64m nginx
@@ -22,13 +20,13 @@ $ docker run --tmpfs /run:rw,noexec,nosuid,size=64m nginx
$ docker run --mount type=tmpfs,destination=/run,tmpfs-size=67108864 nginx
```
### 8.4.3 注意事项
### 8.3.3 注意事项
- 容器停止后`tmpfs` 数据会丢失
- `tmpfs` 占用宿主机内存建议显式限制大小
- 不适合需要持久化的数据
### 8.4.4 Volume / Bind Mount 对比
### 8.3.4 Volume / Bind Mount 对比
| 类型 | 数据位置 | 持久化 | 典型用途 |
|------|---------|-------|---------|

View File

@@ -1,4 +1,4 @@
## 8.5 本章小结
## 本章小结
| 要点 | 说明 |
|------|------|
@@ -8,7 +8,7 @@
| **适用场景** | 开发环境配置文件日志 |
| **vs Volume** | Bind 更灵活Volume 更适合生产 |
### 8.5.1 延伸阅读
### 8.4.1 延伸阅读
- [数据卷](8.1_volume.md)Docker 管理的持久化存储
- [tmpfs 挂载](8.3_tmpfs.md)内存临时存储
@@ -23,7 +23,7 @@
| 清理未用 | `docker volume prune` |
| 挂载数据卷 | `-v name:/path` `--mount source=name,target=/path` |
### 8.5.2 延伸阅读
### 8.4.2 延伸阅读
- [绑定挂载](8.2_bind-mounts.md)挂载宿主机目录
- [tmpfs 挂载](8.3_tmpfs.md)内存中的临时存储