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,10 +1,10 @@
## 14.4 联合文件系统
联合文件系统UnionFS Docker 镜像分层存储的基础它允许将多个目录挂载为同一个虚拟文件系统
联合文件系统 (UnionFS) Docker 镜像分层存储的基础它允许将多个目录挂载为同一个虚拟文件系统
### 什么是联合文件系统
联合文件系统UnionFS是一种**分层轻量级**的文件系统它将多个目录"联合"挂载到同一个虚拟目录形成一个统一的文件系统视图
联合文件系统 (UnionFS) 是一种**分层轻量级**的文件系统它将多个目录 联合 挂载到同一个虚拟目录形成一个统一的文件系统视图
> **核心思想**将多个只读层叠加最上层可写形成完整的文件系统
@@ -28,7 +28,9 @@ flowchart TD
Docker 选择联合文件系统作为其存储驱动主要基于以下几个核心优势
#### 1. 镜像分层复用
#### 1镜像分层复用
如下代码块所示展示了相关示例
```mermaid
flowchart TD
@@ -38,7 +40,7 @@ flowchart TD
多个镜像共享相同的底层节省磁盘空间
#### 2. 快速构建
#### 2快速构建
每个 Dockerfile 指令创建一层只有变化的层需要重建
@@ -49,9 +51,9 @@ RUN npm install # 层3安装依赖
COPY . . # 层4应用代码
```
代码变化时只需重建层4层1-3 使用缓存
代码变化时只需重建层 4 1-3 使用缓存
#### 3. 容器启动快
#### 3容器启动快
容器启动时不需要复制镜像只需
1. 在镜像层上创建一个薄的可写层
@@ -59,7 +61,7 @@ COPY . . # 层4应用代码
---
### Copy-on-Write写时复制
### Copy-on-Write (写时复制)
当容器修改只读层中的文件时
@@ -141,11 +143,15 @@ flowchart TD
OverlayFS --> Lower1
```
- **lowerdir**只读的镜像层可以有多个
- **lowerdir**只读的镜像层 (可以有多个)
- **upperdir**可写的容器层
- **workdir**OverlayFS 的工作目录
- **merged**联合挂载后的视图
#### 概述
总体概述了以下内容
#### 文件操作行为
| 操作 | 行为 |
@@ -190,7 +196,9 @@ $ docker inspect nginx:alpine --format '{{json .GraphDriver.Data}}' | jq
为了构建高效轻量的镜像我们在使用联合文件系统时应注意以下几点
#### 1. 减少镜像层数
#### 1减少镜像层数
如下代码块所示展示了相关示例
```docker
## ❌ 每条命令创建一层
@@ -206,13 +214,13 @@ RUN apt-get update && \
rm -rf /var/lib/apt/lists/*
```
#### 2. 避免在容器中写入大量数据
#### 2避免在容器中写入大量数据
容器层的写入性能低于直接写入大量数据应使用
- 数据卷Volume
- 绑定挂载Bind Mount
- 数据卷 (Volume)
- 绑定挂载 (Bind Mount)
#### 3. 使用 .dockerignore
#### 3使用dockerignore
排除不需要的文件可以
- 减小构建上下文