首页/云/Docker 容器速查/docker run --volumes-from 复用容器卷
网络与存储52 条

docker run --volumes-from 复用容器卷

新容器直接继承另一个容器声明的全部卷(含匿名卷):不需要知道卷名即可拿到同一份数据,也常用于备份容器。

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

--volumes-from 继承什么

新容器可以通过 --volumes-from 直接继承另一个容器声明的全部卷(含匿名卷):不需要知道卷名就能拿到同一份数据。备份场景很常用:挂上目标容器的卷之后,另一个容器把数据打包出去。

基本信息

语法--volumes-from 容器名[:ro]
特点按源容器的卷声明整体复刻挂载
常见用途备份、迁移、临时排查
只读挂载加 :ro 后缀
注意继承的是挂载配置而非数据快照

典型使用场景

  • 备份数据库容器的数据卷:挂上后在另一容器里打包
  • 临时排查容器数据:不改动源容器的情况下读取
  • 迁移数据到新卷时先整体挂载再复制
  • 给只读工具容器提供与其他容器相同的数据视图
  • 验证卷内容是否正确落盘

继承与备份

继承与备份
docker run -d --name db -v pgdata:/var/lib/postgresql/data postgres:16-alpine
docker run --rm --volumes-from db alpine ls /var/lib/postgresql/data
docker run --rm --volumes-from db:ro alpine du -sh /var/lib/postgresql/data
docker run --rm --volumes-from db -v "$PWD:/backup" \
  alpine tar czf /backup/db.tgz -C /var/lib/postgresql data

关注点

关注点说明注意
继承范围源容器声明的全部卷包括匿名卷
只读后缀挂载为只读适合备份与核对
数据一致性读取的是实时数据运行中的写入会同时可见
生命周期与源容器声明绑定源容器删除后信息可能丢失
备份场景非常常用:挂上目标容器的卷之后,另一个容器把目录打包即可。
源容器被删除并不必然删除卷,但卷名信息会丢失,重要数据应改用显式具名卷。
继承的是挂载配置而非数据快照,源容器运行中的写入同样会反映到新容器。
只读挂载适合备份与核对场景,能避免误改源数据。
需要长期稳定的数据管理时,用显式具名卷并在编排里声明,比依赖容器继承更清晰。
只读挂载后写入会直接失败,比事后检查更能避免误操作,备份用途的容器一律建议加上只读后缀。

易错点

  • 继承的是挂载配置而非数据快照,运行中的写入会同时反映到新容器
  • 源容器被删除后卷名信息可能丢失,重要数据应改用显式具名卷
  • 备份运行中的数据库不先做一致性处理,恢复时可能得到不可用副本
  • 用继承方式挂载却以为得到独立副本,误操作会直接影响生产数据

数据来源与参考

  • Docker 官方 CLI 参考:docker run --volumes-from(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌