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

curl -sSL https://dl.bintray.com/emccode/rexray/install | sh

然后创建并编辑Rex-Ray的配置文件/etc/rexray/config.yml

也可以使用图形化的在线Rex-Ray配置生成:http://rexrayconfig.codedellemc.com/

配置文件的内容如下:

1. service: virtualbox   使用virtualbox的virtual media作为backend,提供data volume。原因是我们的实验环境就是virtualbox,不需要额外部署存储系统,作为验证和实践,已经足够多了。如果是生产系统,肯定得选择更加稳定的backend,比如ceph rbd

2. endpoint: http://192.168.99.1:18083 是vietualbox宿主机的服务端口,后面会演示如何启动这个服务

3.volumePath: /Users/<your-name>/VirtualBox/Volumes 是vietual宿主机上存放data volume的目录

4. controllerName: SATA  是controller的名字,不用修改

二 .在每台host主机上配置完Rex-Ray driver之后,要配置backend

注:由于实验环境的原因,没有做实验,就不展示了

三。在每台host主机上分别创建volume

docker volume create --driver rexray --name=mysqldata --opt=size=2

四。先在一台host主机上运行容器并使用数据卷(mysqldata)

宿主机提供的backend被容器使用过程:

1.backend首先提供了volume,如:mysqldata

2.mysqldata先被挂载到host主机上,host主机会自动创建一个挂载点

3.host主机上的挂载点通过容器运行时的指定,被挂载到容器上

五。更新容器中的数据,删除容器

六。在另外一个host主机上重新运行一个容器,并挂载相同的volume(mysqldata),这个volume(mysqldata)会被冲重新使用。使用过程和之前一样

总结:1.假设有两个host主机docker1和docker2,当我们在docker1上运行了两个有状态的容器时,要分别创建两个不同名的volume,

2.volume实际是backend的一部分

3.volume有点类似共享存储

centos7下安装docker(16.1docker跨主机存储--Rex-Ray)的更多相关文章

  1. docker(一) Centos7下安装docker

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

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

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

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

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

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

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

  5. centos7 下安装docker报错:You could try using...

    搞了台VPS,想要装docker,发现死活装不上,各种报错.之前系统是centos6,发现官方现在已经不支持centos6了,遂升级到centos7,然后还是出现下面这个错误. Error: Pack ...

  6. centos7下安装docker(16.docker跨主机存储)

    从业务数据的角度看,容器可以分为两类:无状态(stateless)容器和有状态(stateful)容器. 无状态:是指容器在运行的过程中不需要保存数据,每次访问的结果不依赖上一次的访问,比如提供静态页 ...

  7. centos7下安装docker(15.4跨主机网络-flannel)

    flannel是CoreOS开发的容器网络解决方案,flannel为每一个host分配一个subnet,容器从这些subnet中分配IP,这些IP可以在host之间路由,容器无需NAT和port ma ...

  8. centos7下安装docker(15.6docker跨主机网络---Weave)

    Weave是weaveworks开发的容器网络解决方案.weave创建的虚拟网络可以将部署在多个主机上的容器连接起来.对于容器来说,weave就像一个巨大的网络交换机,容器可以直接通信,无需NAT和端 ...

  9. centos7下安装docker(15.5容器跨主机网络--flanneld)

    flannel是由CoreOS研究的一种覆盖网络(overlay network)网络工具,目的是帮助每一个host主机有一个完整的子网: 功能是:让集群中不同节点的主机创建的容器都有一个唯一的虚拟I ...

随机推荐

  1. myeclipse无法部署项目的解决

    一.问题 myeclipse无法部署项目,点击这个部署按钮没有反应. 二.解决办法 1.找到myeclipse的工作空间,也就是启动时的那个项目保存的空间,我的是在D:\myeclipse_works ...

  2. js作用域面试题大全

    什么是作用域:浏览器给js的生存环境叫作用域. 什么是变量提升: Js代码执行前,浏览器会给一个全局作用域window Window分两个模块一个是存储模块一个是执行模块 存储模块找到所有的var和f ...

  3. PHP实现二分法查找

    二分查找法需要数组是一个有序的数组. <?php function binarySearch($num, $arr) { $start = 0; $end = count($arr); $mid ...

  4. JavaScript机器学习之KNN算法

    译者按: 机器学习原来很简单啊,不妨动手试试! 原文: Machine Learning with JavaScript : Part 2 译者: Fundebug 为了保证可读性,本文采用意译而非直 ...

  5. javascript 点击触发复制功能

    摘要: js调用复制功能使用: document.execCommand("copy", false); document.execCommand()方法功能很强大,了解更多请戳: ...

  6. 2018-05-14 代码考古-Python3官方教程字典例程

    知乎原链 Data Structures中的第一个例程: >>> tel = {'jack': 4098, 'sape': 4139} >>> tel['guido ...

  7. Linux 安装 Mysql 5.7.23

    切换目录 cd /usr 创建目录 mkdir mysql cd mysql 下载 Mysql Yum wget http://repo.mysql.com/mysql57-community-rel ...

  8. 在C++的函数中如何指定一个数组,使得这个数组的大小由函数的输入值来决定

    今天调试一个C++程序,在一个函数中定义了一个一维数组,设定数组的大小由函数的输入值来决定. 是这样子的: ]; 然后发现:报错! 报错是这样的: 那么问题来了,在C++中定义数组一定要指定数组大小么 ...

  9. Android 方法数超过64k、编译OOM、编译过慢解决方案。

    目前将项目中的leancloud的即时通讯改为环信的即时通讯.当引入easeui的时候 出现方法数超过上限的问题. 搜索一下问题,解决方法很简单. 这里简单记录一下,顺序记录一下此解决方案导致的另一个 ...

  10. Android绘制优化(二)布局优化

    前言 我们知道一个界面的测量和绘制是通过递归来完成的,减少布局的层数就会减少测量和绘制的时间,从而性能就会得到提升.当然这只是布局优化的一方面,那么如何来进行布局的分析和优化呢?本篇文章会给你一个满意 ...