ITPub博客

首页 > 数据库 > 数据库开发技术 > Docker 入门(三)

Docker 入门(三)

原创 数据库开发技术 作者:凌虚 时间:2018-05-06 00:58:38 0 删除 编辑


本系列前两篇文章:

1、Docker 入门(一):基本概念

2、Docker 入门(二):构建镜像


现在有了 docker,如果要频繁的更改和测试程序时怎么办,每次都重新打一个新的镜像然后启动容器?

容器只是一个运行时,一旦被杀死,其内部的数据都会被清除,但是我们想要数据被持久化,又该怎么办?

不同的容器之间常常需要共享某些数据,这又该解决呢?




01

—


volume



Volume 翻译为卷,因为基本上用于挂载数据,所以也常常直接称之为数据卷。


所谓的挂载数据卷,实际上就是把宿主机本地的目录文件映射到 docker 容器内部的目录下。也就是说实际的目录文件是存放在本地磁盘上的,docker 容器通过挂载的方式可以直接使用本地磁盘上的文件。

如上图所示:

1、Data Volume 数据卷是存放在本地磁盘上,所以数据是持久化的,即使容器被杀死也不会影响数据卷中的数据。


2、不同的容器挂载同一个数据卷就实现了数据的共享。


3、容器对数据卷中操作都是即时的,一个容器改变了数据,那么另一个容器就会即时看到这种改变。


总而言之,挂载数据卷其实就是间接的操作本地磁盘上的数据,所谓间接是因为容器操作的是其内部映射的目录,而不是宿主机本地目录。



02

—


数据卷容器



如果有多个容器都需要挂载数据卷,难道需要每一个容器都挂载一遍到本地?当然不是。



如上图所示,这里引入了数据卷容器(图中的 Data Container ),其实就是一个普通的容器,我们只需要通过数据卷容器挂载( -v )一次数据卷,其他需要挂载的容器直接连接( --volumes-from )这个数据卷容器就行了,而再不需要知道实际的宿主机本地目录。


数据卷容器是否存在单点故障?也就是说数据卷容器挂了,其它的容器还能挂载并使用数据吗?答案是仍然能正常使用数据,因为数据卷容器本身只是一个数据卷挂载的配置传递的作用,只要其它容器挂载上就会一直有效,不会因为数据卷容器挂了而产生单点故障。




03

—


结语



本文简单讲述了数据卷的相关概念,实际操作只需要通过 docker run 命令启动容器时使用 -v(挂载到本地目录)和 --volumes-from(连接到数据卷容器)参数即可。


原文作者:系统架构师Go;如有侵权,请联系管理员删除。

上一篇: 刻骨铭心痛一场
请登录后发表评论 登录
全部评论

注册时间:2017-03-30

  • 博文量
    154
  • 访问量
    63673