VOLUME 定义匿名卷
基本语法
VOLUME ["/路径1", "/路径2"]
VOLUME /路径为什么使用 VOLUME
没有 VOLUME: 使用 VOLUME:
┌─────────────────────┐ ┌─────────────────────┐
│ 容器存储层 │ │ 容器存储层 │
│ ┌─────────────┐ │ │ (只读/无状态) │
│ │ 数据库文件 │←─问题 │ │
│ │ 日志文件 │ │ └──────────┬──────────┘
│ │ 上传文件 │ │ │
│ └─────────────┘ │ ┌──────────▼──────────┐
└─────────────────────┘ │ 数据卷 │
容器删除 = 数据丢失 │ ┌─────────────┐ │
│ │ 持久化数据 │←─安全
│ └─────────────┘ │
└─────────────────────┘
容器删除,数据保留基本用法
定义单个卷
定义多个卷
VOLUME 的行为
1. 自动创建匿名卷
2. 可被命名卷覆盖
3. 可被 Bind Mount 覆盖
VOLUME 在构建时的特殊行为
正确做法
常见使用场景
数据库持久化
日志目录
上传文件目录
查看 VOLUME 定义
VOLUME vs docker run -v
特性
Dockerfile VOLUME
docker run -v
在 Compose 中
安全注意事项
匿名卷可能导致数据丢失
最佳实践
1. 定义必须持久化的路径
2. 不要在 VOLUME 后修改目录
3. 文档中说明 VOLUME 用途
本章小结
要点
说明
延伸阅读
最后更新于