跳到主要内容

Docker 数据卷管理速查表 — 持久化数据与存储

容器本质上是临时的——停止后数据会丢失。数据卷和绑定挂载让你持久化数据、在容器间共享文件,并独立于容器生命周期管理存储。

更新: 2026-07-15·23 条命令

快速参考

场景命令
列出所有数据卷docker volume ls
创建数据卷docker volume create my-data
查看数据卷详情docker volume inspect my-data
删除数据卷docker volume rm my-data
清理未使用的卷docker volume prune
挂载数据卷运行容器docker run -v my-data:/app/data nginx
绑定宿主机目录docker run -v $(pwd):/app nginx
只读挂载docker run -v my-data:/app/data:ro nginx

数据卷 vs 绑定挂载

特性数据卷 (Volume)绑定挂载 (Bind Mount)
Docker 管理✅ 是❌ 否
存储位置/var/lib/docker/volumes/宿主机任意路径
备份恢复简单(docker CLI)手动
跨主机移植✅ 是❌ 依赖路径
开发热重载✅ 宿主编辑即时同步
推荐用途生产数据、数据库开发配置、配置文件

核心命令详解

### 管理数据卷

``bash # 创建命名数据卷 docker volume create postgres-data

# 列出数据卷 docker volume ls

# 查看详情 docker volume inspect postgres-data

# 删除数据卷(容器不能正在使用) docker volume rm postgres-data

# 清理所有未使用的数据卷 docker volume prune `

### 在容器中使用数据卷

`bash # 命名数据卷——Docker 管理存储位置 docker run -d --name db -v postgres-data:/var/lib/postgresql/data postgres:16

# 匿名数据卷——Docker 自动生成随机名称 docker run -d -v /var/lib/postgresql/data postgres:16

# 只读数据卷(容器不能写入) docker run -d -v config-data:/etc/nginx/conf.d:ro nginx

# 多数据卷 docker run -d \ -v app-data:/app/data \ -v config-data:/etc/nginx/conf.d:ro \ nginx `

### 绑定挂载

`bash # 挂载当前目录到容器的 /app docker run -v $(pwd):/app node:20 npm run dev

# 只读绑定 docker run -v $(pwd):/app:ro node:20 npm test

# 指定绝对路径 docker run -v /home/user/project:/app node:20 npm start `

### 备份与恢复

`bash # 备份数据卷到 tar 文件 docker run --rm \ -v my-volume:/source \ -v $(pwd):/backup \ alpine tar czf /backup/my-volume-backup.tar.gz -C /source .

# 从 tar 文件恢复数据卷 docker run --rm \ -v my-volume:/target \ -v $(pwd):/backup \ alpine tar xzf /backup/my-volume-backup.tar.gz -C /target ``

数据卷(23)

命令难度
docker volume create
创建一个新的卷
基础
docker volume ls
列出所有卷
基础
docker volume inspect
查看卷的详细信息
基础
docker volume rm
删除一个或多个卷
基础
docker volume prune
删除所有未使用的卷
高级
docker run -v
使用卷挂载运行容器
中级
docker run --mount
使用高级挂载选项运行容器
高级
docker volume --help
显示 docker volume 帮助信息
基础
docker volume create --driver
使用指定驱动创建卷
中级
docker volume create --label
创建卷并添加标签
中级
docker volume create -o type=btrfs
创建卷并指定文件系统类型
高级
docker volume ls -q
仅显示卷名称
基础
docker volume ls --filter
按条件过滤列出卷
中级
docker volume inspect --format
自定义查看卷信息格式
高级
docker volume prune -f
静默删除所有未使用的卷
基础
docker volume prune --filter
按条件删除未使用的卷
高级
docker run -v (bind mount)
使用主机目录绑定挂载运行容器
中级
docker run -v $(pwd):/app
将当前目录挂载到容器中(开发热重载)
基础
docker run --mount type=bind
使用 --mount 语法进行绑定挂载
中级
docker run --mount type=tmpfs
使用 tmpfs 挂载运行容器(内存中)
高级
docker run --mount type=volume,readonly
使用只读卷挂载运行容器
中级
docker run --mount type=volume,volume-driver
使用第三方卷驱动运行容器
高级
docker run --mount type=volume,volume-opt
使用卷驱动选项运行容器
高级

常见问题

本速查表数据整理自各工具官方文档。最后更新: 2026-07-15。