Docker数据卷
原创2026/3/18大约 2 分钟
在 Docker 中,容器的数据默认是临时的,一旦容器被删除,数据也会丢失。
为了解决这个问题,就需要使用 数据卷(Volume)。
什么是数据卷
数据卷是 Docker 提供的一种 数据持久化机制,可以将容器中的数据映射到宿主机。
提示
数据卷可以理解为:容器和宿主机之间的“共享文件夹”
为什么需要数据卷
如果不使用数据卷:
- 容器删除 → 数据丢失 ❌
- 数据无法备份 ❌
- 无法共享 ❌
使用数据卷后:
- 数据持久化 ✅
- 容器删除数据仍在 ✅
- 支持多容器共享 ✅
一、使用数据卷(匿名卷)
docker run -d -v /data nginx说明:
/data:容器内目录- Docker 会自动创建匿名数据卷
二、使用具名数据卷
创建数据卷
docker volume create my-volume查看数据卷
docker volume ls使用数据卷
docker run -d -v my-volume:/data nginx查看数据卷详情
docker volume inspect my-volume三、绑定宿主机目录(最常用)
docker run -d -v /宿主机目录:/容器目录 nginx示例:
docker run -d -p 80:80 -v /home/nginx/html:/usr/share/nginx/html nginx提示
这是最常用方式,适用于:
- 前端项目部署
- 日志存储
- 文件上传
四、数据卷读写权限
docker run -d -v /data:/data:ro nginx说明:
- ro:只读
- rw:读写(默认)
五、查看容器数据卷
docker inspect 容器ID查看 Mounts 字段即可。
六、删除数据卷
docker volume rm my-volume删除所有未使用的数据卷
docker volume prune警告
删除后数据不可恢复,请谨慎操作
七、实际应用场景
1. 部署前端项目
docker run -d -p 80:80 \
-v /home/project/dist:/usr/share/nginx/html \
nginx2. 持久化数据库
docker run -d -v /data/mysql:/var/lib/mysql mysql3. 日志存储
docker run -d -v /logs:/var/log/nginx nginx八、总结
数据卷核心作用:
- 数据持久化
- 数据共享
- 解耦容器生命周期
常用方式:
- 匿名卷(不推荐)
- 具名卷(推荐)
- 宿主机挂载(最常用)
至此,本章节的学习就到此结束了,如有疑惑,可对接技术客服进行相关咨询。