Docker 数据持久:【化最佳实】践 Volume 使用全指、南
界面新闻  发布时间:2025-07-27 03:29:36   

你是不是也经常在使用Docker的时候,遇到“数据持久化”相关的困惑?容器删了,数据也跟着没了?今天就带你深入了解Docker的Volume机制,搞懂什么是Volume、怎么使用、存储在哪,以及如何实现多个容器共享存储!

一、什么是DockerVolume?

Docker的Volume(卷)是官方推荐的数据持久化方案,用来将容器中的数据独立存储在宿主机上。与容器生命周期解耦,删除容器不会影响数据,非常适合用于数据库、日志等场景。

简单理解就是:容器内的数据->Volume->宿主机目录。

二、Volume的使用场景

容器内服务需要持久化数据,比如MySQL、Redis、PostgreSQL

♻️多个容器之间需要共享数据

防止重要数据在容器销毁时丢失

容器频繁更新、迁移,但数据需要保留

三、Volume怎么使用?

1.创建Volume

dockervolumecreatemydata

查看:

dockervolumels

2.使用Volume运行容器

dockerrun-d\--namemysql\-vmydata:/var/lib/mysql\mysql:5.7

这条命令把宿主机上的mydata卷挂载到了容器中的/var/lib/mysql,MySQL的数据就存储在这个卷里。

3.查看卷挂载路径

dockervolumeinspectmydata

输出中Mountpoint字段会告诉你这个卷实际挂载到了宿主机的哪个路径,例如:

"Mountpoint":"/var/lib/docker/volumes/mydata/_data"

也就是说,你的数据其实是存在宿主机这个目录下的。

四、DockerVolume存储在哪?

默认情况下,Docker会将Volume存储在:

/var/lib/docker/volumes/卷名/_data/

你也可以用第三方存储驱动(如NFS、GlusterFS、Ceph等)把Volume存储到远程服务器或分布式存储系统。

五、如何共享Volume?

方式1:多个容器挂载同一个Volume

dockerrun-d--namecontainer1-vmydata:/app/databusyboxsleep3600dockerrun-d--namecontainer2-vmydata:/app/databusyboxsleep3600

两个容器就可以共享/app/data目录下的内容了。

方式2:使用--volumes-from继承挂载

dockerrun-d--namecontainer1-v/databusyboxdockerrun-d--namecontainer2--volumes-fromcontainer1busybox

适合某些场景下的依赖继承,比如日志采集、配置共享等。

六、Volume的清理

删除未使用的卷

dockervolumeprune

删除指定卷

dockervolumermmydata

⚠️注意:如果卷还在使用中,删除会失败。

七、补充:VolumevsBindMount

总结一下

DockerVolume是实现容器数据持久化和共享的关键工具。掌握Volume,可以让你:

保证数据不随容器销毁而丢失

实现多个容器的数据共享

更安全、便捷地管理容器生命周期中的数据

别再让数据随风而去了,赶紧用Volume把数据稳稳托住吧!

  随着参与网球运动的人逐渐增多,中国网球的基础设施也在不断完善。纪宁告诉《环球时报》记者:“我们在做一个项目,在北京朝阳区规划一个‘大满贯网球文化公园’,将汇集所有大满贯要素。人们既能在此观看全球顶级赛事,也能在场地上训练和比赛。”纪宁说,这仅是一个案例,但从中可以窥见中国网球运动基础设施越来越完善,也越来越专业化。作为体育产业的参与者与观察者,纪宁表示,不仅北京,全国各地网球运动设施也发展得越来越好。

延伸阅读:与 Docker 数据持久:【化最佳实】践 Volume 使用全指、南 的相关文章
中国人要把饭碗端在自己手里
特朗普将向全国发表讲话
美媒曝哈梅内伊正藏身地堡避险
焕羽云包场
奔跑吧最后一次录制
易烊千玺演唱会
官方调查那尔那茜
单依纯第五
者来女二手玫瑰即视感
千万别买到青岛西

(原标题:Docker 数据持久化最佳实践: Volume 使用全指南)
来源:界面新闻  作者:阮佩璇  编辑:张羽秋
返回
临沂车夫物流有限公司