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

什么是volume

想要了解Docker Volume,首先我们需要知道Docker的文件系统是如何工作的。Docker镜像是由多个文件系统(只读层)叠加而成。当我们启动一个容器的时候,Docker会加载只读镜像层并在其上(镜像栈顶部)添加一个读写层。如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只是已经被读写层中该文件的副本所隐藏。当删除Docker容器,并通过该镜像重新启动时,之前的更改将会丢失。在Docker中,只读层及在顶部的读写层的组合被称为Union File System(联合文件系统)。

为了能够保存(持久化)数据以及共享容器间的数据,Docker提出了Volume的概念。简单来说,Volume就是目录或者文件,它可以绕过默认的联合文件系统,而以正常的文件或者目录的形式存在于宿主机上。 最常用的其实就是目录挂载文件共享的使用。

区别

volume挂载方式:使用数据卷挂载的方式,Docker会自动在宿主机上帮我们创建数据卷对应的真实目录。容器挂载时只需要挂载到数据卷上,而不用关心数据卷指向的真实目录在哪里。即使将来容器被删除了,数据卷中或者宿主机挂载到容器的目录中的内容是不会随着容器的删除而丢失的。

  • Docker 优点:这种方式相当于把挂载全部交给Docker本身处理,方便快捷。

  • 缺点:真实挂载目录由Docker生成,目录较深,不方便查找。

直接挂载方式:直接挂载到宿主机目录上,不再有中间的数据卷,而是容器和宿主机的直接交互。

  • 优点:目录和文件更好找也更好维护,并且能直接把目录或者文件挂载到容器上。

  • 缺点:目录和文件需要我们自行创建和维护。

转载自Docker Volume - 目录挂载以及文件共享 | Zach Ke's Notes (kebingzao.com)

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值