Docker Volume(数据卷)配置
Docker Volume(数据卷)配置
一、什么是 Docker Volume
- Volume(数据卷)是由 Docker 管理的一块用于持久化数据的独立存储区域。
- 存放位置通常是宿主机
/var/lib/docker/volumes/下。 - 卷可以在容器删除、重启后保持数据不丢失,并支持多个容器共享访问。
二、使用 Volume 的好处
- 数据持久化:容器删除后数据仍保留。
- 数据共享:多个容器可读写同一份数据。
- 备份迁移方便:卷可单独备份和迁移。
- 更安全:避免直接操作宿主机敏感目录。
- 性能优化:比传统 Bind Mount(直接目录挂载)有更好的性能(取决于驱动)。
三、Volume 基本操作命令
| 命令 | 说明 |
|---|---|
docker volume create my-volume |
创建数据卷 |
docker volume ls |
查看所有数据卷 |
docker volume inspect my-volume |
查看指定数据卷详情 |
docker volume rm my-volume |
删除数据卷 |
四、在容器中挂载 Volume 的方式
1. -v 参数(快捷方式)
docker run -d -v my-volume:/app/data my-image
- 将
my-volume卷挂载到容器内/app/data目录。
挂载宿主机本地目录:
docker run -d -v /host/path:/container/path my-image
2. --mount 参数(推荐方式)
docker run -d \
--mount type=volume,source=my-volume,target=/app/data \
my-image
挂载宿主机目录(Bind Mount):
docker run -d \
--mount type=bind,source=/host/path,target=/container/path \
my-image
五、在 docker-compose.yml 中配置 Volume
version: '3.8'
services:
app:
image: my-image
volumes:
- my-volume:/app/data
volumes:
my-volume:
挂载宿主机目录示例:
services:
app:
image: my-image
volumes:
- /host/path:/container/path
六、Volume 存储位置
- 默认存在宿主机
/var/lib/docker/volumes/卷名/_data/目录下。 - 不建议直接操作,应通过挂载或备份等方式管理。
七、常见使用场景
| 场景 | 说明 |
|---|---|
| 数据持久化 | 保存数据库、程序生成的数据等 |
| 日志收集 | 容器应用日志统一输出到宿主机 |
| 配置文件挂载 | 方便动态修改配置 |
| 多容器共享数据 | 文件上传、存储共享等 |
八、Docker Compose 中 Volume 高级配置
volumes: 下可以写的详细配置:
| 配置项 | 作用 |
|---|---|
driver |
卷驱动,默认 local |
driver_opts |
驱动参数,指定挂载类型和路径 |
labels |
卷标签,方便管理和查询 |
external |
指定使用外部已存在的卷 |
name |
手动指定卷名称(通常用 volumes 下的key名) |
九、详细示例
volumes:
esdata01:
driver: local
infinity_data:
driver: local
mysql_data:
driver: local
minio_data:
driver: local
redis_data:
driver: local
高级配置示例(绑定宿主机目录)
volumes:
redis_data:
driver: local
driver_opts:
type: none
device: /data/docker/redis
o: bind
labels:
project: redis-cluster
env: prod
外部卷示例
volumes:
my_external_volume:
external: true
十、总结
volumes:只是定义卷,挂载需要在services中通过volumes:引用。- 推荐在生产环境:
- 对重要数据使用 Volume挂载
- 对配置文件、日志目录使用 Bind Mount挂载
- 开发环境可以简单挂宿主机目录,便于调试。
⭐️ 小建议
写
docker-compose.yml的时候,卷的定义要规范,明确挂载需求,特别是生产环境,否则容易出现数据丢失风险。

浙公网安备 33010602011771号