Docker提出的Volume的概念,简单来讲,volume就是目录或者文件,它能够绕过默认的联合文件系统,而已正常的文件或目录的形式存在宿主机上。实现持久化的数据保存。html
Docker中,只读层在顶部的读写层的组合称为union File System(联合文件系统)linux
Volume 能够将容器以及容器产生的数据隔离开,当你是使用docker rmweb
删除容器时,不会影响相关的数据。docker
Docker管理数据的两种方式:数据卷app
: 数据卷容器webapp
数据卷 :实现数据的持久存储。ide
:实如今多个容器中共享数据。spa
数据卷的使用,相似于linux下对目录进行mount,你想在容器中使用宿主机上的目录,(即把宿主机上的文件或目录挂载给容器)能够经过-v 来指定3d
例如 :Docker run -v /host/path:/some/path(能够使用屡次-v 选项为一个容器挂载多个本地主机目录)orm
注意:冒号前是宿主机目录,冒号后是容器中的挂载点(宿主机的路径和容器中的挂载点均可以不存在,目录将自动在给定的路径中建立)
挂载当前主机的一个目录到容器中
1 建立一个Web容器,并加载一个宿主机目录到容器的/var/www/html/目录下(在宿主机上建立/web/webapp目录,并建立一个indexx.html文件)
2 查看镜像,并使用镜像建立容器(加载主机的/web/webapp目录到容器的/var/www/html/目录下)
3 查看挂载的目录
4 在浏览其中,使用宿主机的IP和端口号,访问
添加一个或多个数据卷
1 建立一个数据卷(它们告诉Docker在主机上建立一个目录,默认状况下是在/var/lib/docker/volumes下,而后将其挂载到指定的路径下)
建立数据卷绑定到新建容器,新建容器中会建立/data数据卷
2 进入容器,查看给容器添加的数据卷(使用Ctrl -p ctrl -q 退出容器)
3 查看获取的主机对应路径(说明docker把/var/lib/docker下的某个目录挂载到了容器的/data目录下)
4 在宿主机上添加文件到此文件夹下
Docker挂载数据卷的默认权限是读写,用户能够经过:ro指定为只读
数据卷容器
若是受权一个容器访问另外一个容器的volume,咱们能够使用—volume-from来
1 建立一个命名的数据卷容器
2 而后,能够在其余容器中使用—volumes-from 来挂载/test卷
3 进入test1 test2 test3容器,执行df查看