首页/云/Docker 容器速查/local 卷驱动与自定义挂载选项
网络与存储52 条

local 卷驱动与自定义挂载选项

local 驱动通过 --opt type/device/o 组合把宿主目录或其他文件系统包装成卷:可以让卷落在指定磁盘路径上而不移动 Docker 数据目录。

Docker 容器速查云更新于 2026-10-13

local 卷驱动做什么

local 卷驱动用 --opt type/device/o 三个选项把宿主目录或其他文件系统包装成 Docker 卷。最常见的组合是 type=none、o=bind、device=/srv/appdata,效果是把卷落在指定宿主路径上,而不必迁移整个 Docker 数据目录。

基本信息

语法docker volume create --driver local --opt type=… --opt device=… --opt o=…
典型组合type=none + o=bind + device=/srv/appdata
参数语义type/device/o 直接对应 mount 命令的参数
适用平台Linux 宿主上最常用
核对docker volume inspect <卷> 查看 Options

典型使用场景

  • 把部分卷单独放到大容量数据盘,而不迁移整个 Docker 数据目录
  • 挂载宿主上已存在的目录,并让它在卷列表里可管理
  • 包装特定文件系统(例如内存文件系统)作为卷后端
  • 给要求固定宿主路径的遗留应用提供卷接口
  • 按业务把卷分散在多块磁盘上,分摊 IO 压力

创建与验证

创建与验证
docker volume create --driver local \
  --opt type=none \
  --opt o=bind \
  --opt device=/srv/appdata \
  local-bind
docker volume inspect local-bind --format '{{json .Options}}'              # 核对选项
docker run --rm -v local-bind:/data alpine sh -c 'echo ok > /data/probe'    # 验证挂载与写入

三个选项的含义

选项含义示例值
type文件系统类型none 表示直接绑定已有路径
o挂载参数bind 表示绑定挂载
device设备或宿主路径/srv/appdata
Options创建后可在 inspect 中复核改选项需重建卷
type/device/o 直接对应 mount 的参数语义,配置前先在同一台宿主上用挂载命令把方式验证一遍,再写进卷创建命令。
选项写错时卷能创建成功但容器挂载失败,创建后立刻用临时容器验证挂载与写入,不要等业务启动才发现。
这种方式挂载的宿主目录不受 Docker 卷生命周期管理,docker volume rm 不会清理其中数据,清理要人工确认。
把宿主系统目录(如 /etc、/usr 的子目录)包成卷挂进容器会显著扩大影响面,授权范围要在评审里说明。
需要跨宿主共享的目录不要用这种本地绑定方式包装,应改用支持共享的存储后端,否则同一份编排在多台机器上各自挂到本地目录,数据并不一致。

易错点

  • 选项拼写错误时卷能创建但容器挂载失败,创建后立刻用临时容器验证挂载与写入
  • 用这种方式挂载的宿主目录不受卷生命周期管理,删除卷不会清理数据,清理要人工确认
  • 把宿主系统目录包成卷会扩大影响面,卷的授权范围要按最小必要原则评审
  • 不同宿主的路径与文件系统不一致时,同一份编排换机器就失败,卷定义要写进环境基线

数据来源与参考

  • Docker 官方文档:local volume driver 选项(docs.docker.com/storage/volumes)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌