联合文件系统
什么是联合文件系统
┌─────────────────────────────────────────────────────────┐
│ 容器看到的文件系统 │
│ /bin /etc /lib /usr /var /app /data │
└────────────────────────┬────────────────────────────────┘
│
┌───────────────┴───────────────┐
│ UnionFS 联合挂载 │
└───────────────┬───────────────┘
│
┌────────────────────────┴────────────────────────────────┐
│ 容器层 (读写) │ /app/data/log.txt (新写入) │
├────────────────────┼────────────────────────────────────│
│ 镜像层3 (只读) │ /app/app.py │
├────────────────────┼────────────────────────────────────│
│ 镜像层2 (只读) │ /usr/local/bin/python │
├────────────────────┼────────────────────────────────────│
│ 镜像层1 (只读) │ /bin /etc /lib (基础系统) │
└────────────────────┴────────────────────────────────────┘为什么 Docker 使用联合文件系统
1. 镜像分层复用
2. 快速构建
3. 容器启动快
Copy-on-Write(写时复制)
Docker 支持的存储驱动
存储驱动
说明
推荐程度
各发行版推荐
Linux 发行版
推荐存储驱动
查看当前存储驱动
overlay2 工作原理
文件操作行为
操作
行为
查看镜像层
最佳实践
1. 减少镜像层数
2. 避免在容器中写入大量数据
3. 使用 .dockerignore
本章小结
概念
说明
延伸阅读
最后更新于