卷(Volumes)概念与使用
Docker 卷(Volumes)是容器外部的数据存储机制,用于持久化和共享容器数据,独立于容器生命周期。
1. 卷的特点
- 数据与容器生命周期分离,容器删除后卷仍然存在
- 可在多个容器间共享
- 由 Docker 管理,路径位于宿主机
/var/lib/docker/volumes - 提供更好的性能和安全性,相比 bind mount 更推荐用于生产环境
2. 创建卷
bash
# 创建命名卷
docker volume create myvolume
# 查看卷列表
docker volume ls
# 查看卷详细信息
docker volume inspect myvolume3. 使用卷挂载数据
3.1 运行容器时挂载卷
bash
docker run -d -v myvolume:/app/data myapp/app/data:容器内的挂载路径myvolume:已创建的 Docker 卷
3.2 挂载多个卷
bash
docker run -d \
-v volume1:/app/data1 \
-v volume2:/app/data2 \
myapp4. 卷的用途
- 持久化数据库数据
- 存储应用日志和配置文件
- 多容器共享数据
- 快速备份和迁移数据
5. 卷管理命令
- 删除卷(仅删除未使用的卷):
bash
docker volume rm myvolume- 清理未使用卷:
bash
docker volume prune6. 最佳实践
- 尽量使用命名卷而非匿名卷,便于管理
- 对重要数据定期备份
- 避免直接修改宿主机卷目录内容,避免破坏容器数据完整性
- 配合 Docker Compose 管理卷,实现多服务数据共享
掌握 Docker 卷的使用方法,可以有效实现容器数据持久化、共享和安全管理,提高生产环境的可靠性。