volume是啥东西?volume改在和本地目录或者文件直接改在的区别?

volume

什么是volume(数据卷)?

它将宿主机目录映射到容器内目录,方便我们操作容器内文件,迁移容器产生的数据。从而为容器提供额外的持久化存储。
如果数据都在容器中,那么把容器删除以后,数据也会随之丢失
如:mysql容器,容器删了,里面的数据就都没了,所以要把数据进行持久化
数据卷和直接挂载区别

数据卷挂载

直接挂载

宿主机目录 --> 数据卷 ---> 容器内目录

宿主机目录 ---> 容器内目录

创建方式

docker管理,非自动创建目录,目录结构较深,数据卷不存在的话,会自动去创建数据卷

自定义目录,位置任意

挂载类型

只挂载目录

目录和文件

对容器内数据影响

覆盖容器中的数据

移植性

移植性强 ,数据卷可以挂多个容器,无需指定host目录

移植性弱,与host path直接绑定

解释比喻
当涉及到 Docker 中的挂载和数据卷,可以使用以下比喻来帮助理解:
想象一辆运输卡车代表一个 Docker 容器,而卡车上的货物代表容器中的数据。现在我们将考虑宿主机上的文件系统与容器之间的关系。

挂载(Mounting)比喻为将宿主机上的某个目录和卡车上的货物直接绑定在一起。
假设卡车上有一个特定的货物存放区域,我们可以将宿主机上的一个目录(例如,家中的一个储物柜)与卡车上的货物存放区域进行绑定。
这样,当你往储物柜中放入或取出物品时,卡车上的货物存放区域也会相应地更新。同样,卡车上的货物存放区域发生的任何变化也会反映在储物柜中。
这样,储物柜和卡车上的货物就形成了一个共享的存储空间,你可以随时访问和操作其中的物品。

数据卷(Data Volumes)比喻为一个存储仓库,供多辆卡车共享使用。
假设有一个大型的存储仓库,里面有许多货架用于存放货物。
我们可以让多辆卡车都访问这个存储仓库,并将自己的货物放在其中的特定货架上。
每辆卡车都可以独立地存取自己放在仓库中的货物,而且这些货物在仓库中的位置是固定的,不会受到卡车的运输和启动顺序的影响。
这样,不同的卡车可以随时访问共享的存储仓库,并在其中存取和操作自己的货物。

通过这两个比喻,我们可以理解挂载和数据卷的概念。
挂载是直接将宿主机上的目录与容器绑定,实现宿主机和容器之间的数据共享和同步。
数据卷则是一个独立的存储空间,供多个容器共享和访问,实现容器之间的数据共享和持久化。

  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值