mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-25 11:15:39 +00:00
Fix and update
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
## 联合文件系统
|
||||
|
||||
联合文件系统(UnionFS)是 Docker 镜像分层存储的基础,它允许将多个目录挂载为同一个虚拟文件系统。
|
||||
|
||||
### 什么是联合文件系统
|
||||
|
||||
联合文件系统(UnionFS)是一种**分层、轻量级**的文件系统,它将多个目录"联合"挂载到同一个虚拟目录,形成一个统一的文件系统视图。
|
||||
@@ -31,8 +33,12 @@
|
||||
|
||||
### 为什么 Docker 使用联合文件系统
|
||||
|
||||
Docker 选择联合文件系统作为其存储驱动,主要基于以下几个核心优势。
|
||||
|
||||
#### 1. 镜像分层复用
|
||||
|
||||
具体内容如下:
|
||||
|
||||
```
|
||||
nginx:alpine myapp:latest
|
||||
│ │
|
||||
@@ -94,7 +100,7 @@ Docker 可使用多种联合文件系统实现:
|
||||
|
||||
| 存储驱动 | 说明 | 推荐程度 |
|
||||
|---------|------|---------|
|
||||
| **overlay2** | 现代 Linux 默认驱动,性能优秀 | ✅ **推荐** |
|
||||
| **overlay2**| 现代 Linux 默认驱动,性能优秀 | ✅**推荐** |
|
||||
| **aufs** | 早期默认,兼容性好 | 遗留系统 |
|
||||
| **btrfs** | 使用 Btrfs 子卷 | 特定场景 |
|
||||
| **zfs** | 使用 ZFS 数据集 | 特定场景 |
|
||||
@@ -113,6 +119,8 @@ Docker 可使用多种联合文件系统实现:
|
||||
|
||||
#### 查看当前存储驱动
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
$ docker info | grep "Storage Driver"
|
||||
Storage Driver: overlay2
|
||||
@@ -161,8 +169,11 @@ overlay2 是目前最推荐的存储驱动:
|
||||
|
||||
### 查看镜像层
|
||||
|
||||
运行以下命令:
|
||||
|
||||
```bash
|
||||
## 查看镜像的层信息
|
||||
|
||||
$ docker history nginx:alpine
|
||||
IMAGE CREATED CREATED BY SIZE
|
||||
a6eb2a334a9f 2 weeks ago CMD ["nginx" "-g" "daemon off;"] 0B
|
||||
@@ -173,6 +184,7 @@ a6eb2a334a9f 2 weeks ago CMD ["nginx" "-g" "daemon off;"] 0B
|
||||
...
|
||||
|
||||
## 查看层的存储位置
|
||||
|
||||
$ docker inspect nginx:alpine --format '{{json .GraphDriver.Data}}' | jq
|
||||
{
|
||||
"LowerDir": "/var/lib/docker/overlay2/.../diff:/var/lib/docker/overlay2/.../diff",
|
||||
@@ -186,15 +198,21 @@ $ docker inspect nginx:alpine --format '{{json .GraphDriver.Data}}' | jq
|
||||
|
||||
### 最佳实践
|
||||
|
||||
为了构建高效、轻量的镜像,我们在使用联合文件系统时应注意以下几点。
|
||||
|
||||
#### 1. 减少镜像层数
|
||||
|
||||
具体内容如下:
|
||||
|
||||
```docker
|
||||
## ❌ 每条命令创建一层
|
||||
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y nginx
|
||||
RUN rm -rf /var/lib/apt/lists/*
|
||||
|
||||
## ✅ 合并为一层
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y nginx && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
Reference in New Issue
Block a user