赞
踩
想要了解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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。