Remove blank lines after code block markers

This commit is contained in:
yeasy
2026-03-21 22:36:09 -07:00
parent 312f8fea42
commit 9ac19d79ee
132 changed files with 0 additions and 1517 deletions

View File

@@ -10,7 +10,6 @@ flowchart LR
Write --> Delete[容器删除]
Delete -->|数据都在容器 writable 层| Lost[DATA LOST! ❌]
```
数据卷 (Volume) 解决了这个问题它的生命周期独立于容器
---
@@ -42,7 +41,6 @@ graph TD
Lifecycle[生命周期 = 容器生命周期] -.-> Container
Delete[容器删除] -->|导致| DataLost[数据丢失 ❌]
```
#### 数据卷推荐
```mermaid
@@ -58,7 +56,6 @@ graph TD
AppDir == 挂载 ==> Volume
Delete[容器删除] -.->|不会影响| Volume
```
---
### 8.1.4 数据卷基本操作
@@ -68,7 +65,6 @@ graph TD
```bash
$ docker volume create my-vol
```
#### 列出所有数据卷
```bash
@@ -78,7 +74,6 @@ local my-vol
local postgres_data
local redis_data
```
#### 查看数据卷详情
```bash
@@ -95,7 +90,6 @@ $ docker volume inspect my-vol
}
]
```
**关键字段**
- `Mountpoint`数据卷在宿主机上的实际存储位置
@@ -113,7 +107,6 @@ $ docker run -d \
--mount source=my-vol,target=/usr/share/nginx/html \
nginx
```
**参数说明**
| 参数 | 说明 |
@@ -130,7 +123,6 @@ $ docker run -d \
-v my-vol:/usr/share/nginx/html \
nginx
```
**格式**`-v 数据卷名:容器路径[:选项]`
#### 两种方式对比
@@ -147,7 +139,6 @@ $ docker run -d \
#### 只读挂载
```bash
## --mount 方式
$ docker run -d \
@@ -160,7 +151,6 @@ $ docker run -d \
-v my-vol:/data:ro \
nginx
```
---
### 8.1.6 使用场景示例
@@ -168,7 +158,6 @@ $ docker run -d \
#### 场景一数据库持久化
```bash
## 创建数据卷
$ docker volume create postgres_data
@@ -193,11 +182,9 @@ $ docker run -d \
-v postgres_data:/var/lib/postgresql/data \
postgres:16
```
#### 场景二多容器共享数据
```bash
## 创建共享数据卷
$ docker volume create shared-data
@@ -214,11 +201,9 @@ $ docker run --rm \
-v shared-data:/data \
alpine cat /data/log.txt
```
#### 场景三配置文件持久化
```bash
## 将 nginx 配置存储在数据卷中
$ docker run -d \
@@ -227,7 +212,6 @@ $ docker run -d \
-p 80:80 \
nginx
```
---
### 8.1.7 数据卷管理
@@ -235,7 +219,6 @@ $ docker run -d \
#### 删除数据卷
```bash
## 删除指定数据卷
$ docker volume rm my-vol
@@ -244,11 +227,9 @@ $ docker volume rm my-vol
$ docker rm -v container_name
```
#### 清理未使用的数据卷
```bash
## 查看未被任何容器使用的数据卷
$ docker volume ls -f dangling=true
@@ -261,7 +242,6 @@ $ docker volume prune
$ docker volume prune -f
```
> **注意**数据卷不会自动垃圾回收长期运行的系统应定期清理无用数据卷
---
@@ -271,7 +251,6 @@ $ docker volume prune -f
#### 备份数据卷
```bash
## 使用临时容器挂载数据卷,打包备份
$ docker run --rm \
@@ -279,7 +258,6 @@ $ docker run --rm \
-v $(pwd):/backup \
alpine tar czf /backup/my-vol-backup.tar.gz -C /source .
```
**原理**
1. 创建临时容器
@@ -290,7 +268,6 @@ $ docker run --rm \
#### 恢复数据卷
```bash
## 创建新数据卷
$ docker volume create my-vol-restored
@@ -302,7 +279,6 @@ $ docker run --rm \
-v $(pwd):/backup:ro \
alpine tar xzf /backup/my-vol-backup.tar.gz -C /target
```
#### 备份脚本示例
```bash
@@ -321,7 +297,6 @@ docker run --rm \
echo "Backed up ${VOLUME_NAME} to ${BACKUP_DIR}/${VOLUME_NAME}_${TIMESTAMP}.tar.gz"
```
---
### 8.1.9 数据卷 vs 绑定挂载
@@ -337,7 +312,6 @@ Docker 有两种主要的数据持久化方式:
| **备份** | 需要工具 | 直接访问文件 |
```bash
## 数据卷
$ docker run -v mydata:/app/data nginx
@@ -346,7 +320,6 @@ $ docker run -v mydata:/app/data nginx
$ docker run -v /host/path:/app/data nginx
```
详见[绑定挂载](8.2_bind-mounts.md)章节
---
@@ -358,11 +331,9 @@ $ docker run -v /host/path:/app/data nginx
```bash
$ docker inspect container_name --format '{{json .Mounts}}' | jq
```
#### Q数据卷的数据在哪里
```bash
## 查看数据卷详情
$ docker volume inspect my-vol
@@ -371,7 +342,6 @@ $ docker volume inspect my-vol
"Mountpoint": "/var/lib/docker/volumes/my-vol/_data"
```
> **注意**不建议直接修改 Mountpoint 中的文件应通过容器操作
#### Q如何在不同机器间迁移数据卷