0
点赞
收藏
分享

微信扫一扫

快速学习Docker-容器的数据管理


什么是数据卷(Data Volume):

  • 我们都知道Docker其中一个理念就是应用和环境打包.通常docker容器的生命周期都是和容器中的应用是一致的.而我们对数据的要求是持久化,另外docker容器之间也需要有一个共享数据的渠道.这些需求就催生了数据卷的需求.
  • 数据卷是经过特殊设计的目录,可以绕过联合文件系统(UFS),为一个或者多个容器提供访问.
  • 数据卷设计的目的,在于数据的永久化,它完全独立与容器的生命周期,因此Docker不会在容器删除的时候删除其关联的数据卷,也不会存在类似垃圾收集机制,对容器应用的数据卷进行处理.
    快速学习Docker-容器的数据管理_容器的数据管理

通过上面这张图

  • 1.数据卷是独立于容器的存在,他存在于宿主机中.和容器是分离的.
  • 2.docker数据卷可以是文件或者目录.
  • 3.docker容器可以使用数据卷和宿主机进行数据的共享.
  • 4.同一个文件或者目录支持多个容器的访问.实现了容器间的数据共享和交换.

数据卷的特点

  • 数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含了数据,这些数据会拷贝到新初始化的数据卷中.
  • 数据卷可以容器之间共享和重用.
  • 可以对数据卷里的内容直接进行修改.

为容器添加数据卷
docker run -v ~/container_data:/data -it centos /bin/bash
为数据卷添加访问权限
docker run -v  ~/datavolume:/data:ro -it centos /bin/bash
使用Dockerfile构建包含数据卷的镜像
Dockerfile指令:VOLUME[“/data”]

示例:

# Test
FROM centos
VOLUME ["/datavolume1","/datavolume2"]
CMD /bin/bash
  • 执行构建命令
docker build -t lanxw0720/dvt .

我们在容器启动的时候,我们在容器中指定的数据卷在容器中都会进行一次完整的初始化.根据镜像来创建的容器.使用的数据卷就没办法共享.当我们不能访问到本地目录时,我们怎么共享数据呢?预知后事如何,请看下一篇文章!



举报

相关推荐

0 条评论