从业务数据的角度看,容器可以分为两类:无状态(stateless)容器和有状态(stateful)容器。

无状态:是指容器在运行的过程中不需要保存数据,每次访问的结果不依赖上一次的访问,比如提供静态页面的web服务器。

有状态:是指容器需要保存数据,而且数据会发生变化,访问的结果依赖之前的请求的处理结果,最典型的就是数据库服务器。

状态就是:数据,如果容器需要处理并存储数据,他就是有状态的,反之则无状态

对于有状态的容器,如何保存数据呢?

我们之前学习了data volume可以存储容器的状态,不过当时讨论的volume其本质是docker主机本地目录。

通过我们之前的学习我们知道,本地目录存在一个隐患:如果host主机宕机了,如何恢复容器?

一个办法是定期的备份数据,但这种方案还是会丢失从上次备份到宕机这段时间的数据。更好的方案是由专门的storage provider提供volume,docker从provider哪里获取volume并挂在到容器,这样即使host挂了,也可以立刻从其他可用的host上启动想通镜像的容器,挂载之前使用的volume,这样就不会有数据丢失。

举个栗子:

假设有两个docker 主机,Host1上运行了一个MYSQL容器,为了保护数据,data volume由storage provider提供,如盗图:

当host1发生故障,我们会在host2上启动相同的mysql,并挂载data volume

docker是如何实现跨主机管理data volume方案的呢?

答案是:volume driver

任何一个data volume都是由driver管理的,创建爱你volume时如果不特别指定,将使用local类型的driver,即:从docker host的本地目录中分配存储空间。如果要支持跨主机的volume,则需要使用第三方driver

目前已经有很多可用的driver,比如使用Azure file storage的driver,使用glusterfs的driver,完整的列表可以参考:https://docs.docker.com/engine/extend/legacy_plugins/#volume-plugins

我们这里将选择Rex-Ray driver,其原因是:

1.Rex-Ray是开源的,而且社区活跃

2.支持多种backend,virtualbox的virtual media,amazon ebs,ceph rbd,openstack cinder等

3.支持多种操作系统,ubuntu,centos,rhel,coreos

4.支持多种容器编排引擎,docker swarm,kubernetes和mesos

5.Rex-Ray安装使用方法非常简单

centos7下安装docker(16.docker跨主机存储)的更多相关文章

  1. Centos7下安装与卸载docker应用容器引擎

    Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Li ...

  2. centos7下安装docker(16.1docker跨主机存储--Rex-Ray)

    一.Rex-Ray以standalone进程的方式运行在docker主机上,安装方法很简单:在docker1和docker2上运行如下命令: curl -sSL https://dl.bintray. ...

  3. docker(一) Centos7下安装docker

    docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...

  4. centos7下安装docker(24docker swarm 数据管理)

    service的容器副本会scal up/down,会failover,会在不同的主机上创建和销毁,这就引出一个问题,如果service有数据,那么这些数据该如何存放呢? 1.打包在容器中: 显然不行 ...

  5. Docker学习之Centos7下安装

    Docker学习之Centos7下安装 centos7 64下直接使用yum安装docker环境,步骤如下: 卸载旧版本docker sudo yum remove docker docker-com ...

  6. CentOS7下安装docker(Docker系列1)

    CentOS7下安装docker 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方 ...

  7. centos7下安装docker与镜像加速

    1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install ...

  8. Docker学习笔记3:CentOS7下安装Docker-Compose

    Docker-Compose是一个部署多个容器的简单但是非常必要的工具. 安装Docker-Compose之前,请先安装 python-pip,请参考我的另一篇博文CentOS7下安装python-p ...

  9. Docker容器的跨主机连接

    Docker容器的跨主机连接 Docker容器的跨主机连接 使用网桥实现跨主机容器连接 网络拓扑 网络连接使用的是Bridge 操作 修改/etc/network/interfaces文件,分配静态I ...

  10. Docker学习(15) Docker容器的跨主机连接

    Docker容器的跨主机连接 Docker使用网桥跨主机容器连接 Docker使用Open cSwitch实现跨主机容器连接 Docker使用weave实现跨主机容器连接

随机推荐

  1. python 深拷贝与浅拷贝

    浅拷贝的方式有: lst=[1,2,3] (1)直接赋值: lst_cp = lst (2)for循环遍历生成:lst_cp= [i for i in lst] (3)copy模块下,copy.cop ...

  2. 关于html页面图片自动撑开的问题

    如下列代码: <div id="divnr" style="text-align: center; margin: 10px; width:600px;" ...

  3. gmic全球移动互联网大会 全球九站已开启!

    由长城会主办的全球移动互联网大会( 简称GMIC)已成长为世界范围内最具影响力的辐射并连结东西半球的移动互联网商务平台,是最大规模的移动互联网行业盛会. 2017gmic全球移动互联网大会北京站将于2 ...

  4. Android WebView默认GONE出现的问题记录

    前段时间重构一批相似度80%以上的项目[真搞不懂前人们是怎么忍受十几个类似的应用一直CVU的,冗余代码和资源达到40%以上] 其中需要抽出一个公共的带WebView的Activity基类,由于脑残测试 ...

  5. POJ 2065 SETI [高斯消元同余]

    题意自己看,反正是裸题... 普通高斯消元全换成模意义下行了 模模模! #include <iostream> #include <cstdio> #include <c ...

  6. videojs双击全屏幕观看,videojs动态加载视频

    前段时间闲来无事弄了弄video.js,感觉蛮好玩,能应用到各个应用端,自己在最后玩耍的时候,需要注意的只剩下两方面了,1,动态加载播放视频内容2,双击全屏观看, var urlRoad = &quo ...

  7. Element ui 日期限制范围

    时间限定范围: <el-date-picker type="date" placeholder="选择日期" v-model="addForm. ...

  8. Sublime Text 3安装Package Control

    Package Control官网:https://packagecontrol.io/installation#st3 ctrl + ` 或者 View > Show Console呼出控制台 ...

  9. rem_taobaofix.js

    https://webresource.cdn.chuma.cn/Library/Rem/rem_taobaofix.js https://webresource.cdn.chuma.cn !func ...

  10. mp3转speex的一些研究(貌似不能播放,暂存着)

    思路是,先从mp3中提取pcm(raw原始数据),再将原始数据转成speex. 貌似不能播放,可能还存在其他问题,需要继续研究. 使用了两个类库NSpeex和NAudio using (var wav ...