Docker容器的数据卷
什么是数据卷
- 数据卷是经过特殊设计的目录,可以绕过联合文件系统(UFS),为一个或懂个容器提供访问。
- 数据卷设计的目的在于数据的永久化,它完全独立与容器的生存周期,因此,Docker不会在容器删除时删除其挂载的数据卷,也不会存在类似的来收集机制,对容器引用的数据卷进行处理。
- 数据卷本至于Docker宿主机的文件系统中。
- Docker数据卷可以是目录也可以是文件。
- Docker容易可以通过数据卷与宿主机实现文件共享。
- 同一个数据卷可以支持多个容器访问。
数据卷特点
- 数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新初始化的数据卷中。
- 数据卷可以在容器之间共享和重用。
- 可以对数据卷里的内容直接进行修改。
- 数据卷的变化不会影响镜像的更新。
- 卷会一直存在,即使挂载数据卷的容器已经被删除。
添加数据卷
shell:docker run -v 宿主机卷目录:容器中挂载目录 it 镜像名 /bin/bash
为数据卷添加访问权限
shell:docker run -v 宿主机卷目录:容器中挂载目录:ro -it 镜像名 /bin/bash
ro 为只读
使用Dockerfile构建包含数据卷的镜像
Dockerfile创建的数据卷跟docker run命令有所不同。每次运行新容器时,挂载路径都会自动生成,并且名称不相同。
dockerfile:VOLUME[PATH]
Docker的数据卷容器
什么是数据卷容器
- 命名的容器挂载数据卷,其他容器通过挂载这个容器实现数据共享,挂载数据卷的容器,就叫做数据卷容器。
挂载数据卷容器的方法
shell:docker run --volumes-from [CONTAINER NAME]
CONTAINER NAME 已经挂在了数据卷的容器名字