Rex-Ray 是一个优秀的 Docker volume driver,不过只有最新版docker才支持。

Rex-Ray 以 standalone 进程的方式运行在 Docker 主机上,安装方法很简单,在需要使用 Rex-Ray driver 的主机 docker1 和 docker2 上运行如下命令:

curl -sSL https://rexray.io/install | sh

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

libstorage:
service: rbd
rbd:

重启 Rex-Ray 服务:

  systemctl restart rexray.service

创建块设备:

  rbd create --size 4096 my_data

运行 rexray volume ls 测试 Rex-Ray 是否能够正常工作。

运行docker volume ls 查看可用的卷。

在 dokcer1 上启动 MySQL 容器 mydb_on_docker1,并使用 mysqldata 作为数据卷。

  docker run --name mydb1 -v my_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql

更新数据库,然后销毁 mydb1:

  docker rm -f mydb_on_docker1

在 dokcer2 上启动 MySQL 容器 mydb2,也使用 my_data 作为数据卷,然后验证数据的有效性。

  docker run --name mydb2 -v my_data:/var/lib/mysql -d mysql

新容器也使用相同的卷 my_data,不过这次不需要指定环境变量 MYSQL_ROOT_PASSWORD,因为密码已经保存到 my_data 里面了。

Rex-Ray 可以提供跨主机的 volume,其生命周期不依赖 Docker Host 和容器,是 stateful 容器理想的数据存储方式。

如何使用其他 storage provider 的 volume driver,部署和配置 storage provider 会有所不同,不过 Docker 在使用 volume 的方式都是一样的:

  通过 docker volume create --driver 创建 volume,创建容器时用 -v 指定上一步创建的 volume

Docker使用rexray做跨主机存储的更多相关文章

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

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

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

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

  3. Docker 网络管理及容器跨主机通信

    1.网络模式 docker支持四种网络模式,使用--net选项指定: host,--net=host,如果指定此模式,容器将不会获得一个独立的network namespace,而是和宿主机共用一个. ...

  4. centos7下安装docker(15.3跨主机网络-macvlan)

    除了ovrlay,docker还开发了另一个支持跨主机容器的driver:macvlan macvlan本身是linu kernel模块,其功能是允许在同一物理网卡上配置多了MAC地址,即:多个int ...

  5. centos7下安装docker(15.2跨主机网络-overlay)

    为支持容器跨主机通信,Docker提供了overlay driver,使用户可以创建基于VxLAN的overlay网络.VxLAN可将二层数据封装到UDP进行传输,VxLAN提供与VLAN相同的以太网 ...

  6. Docker 网络模式和跨主机通信

    Docker的四种网络模式 Bridge模式 当Docker进程启动时,会在主机上创建一个名为docker0的虚拟网桥,此主机上启动的Docker容器会连接到这个虚拟网桥上.虚拟网桥的工作方式和物理交 ...

  7. Docker:使用Ambassador进行跨主机间容器通信

    转载请注明出处:点我 由于Docker自身的网络的原因,想要在多主机间的容器之间进行通信是比较麻烦的事情.可以利用Ambassador容器来实现这一功能. 基本原理: 利用Ambassador来实现主 ...

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

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

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

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

随机推荐

  1. Qt加载OSg视图例子

    //QT += core gui opengl //LIBS += -losgViewer -losgDB -losgUtil -losg -lOpenThreads -losgGA -losgQt ...

  2. 移动端视频h5表现问题汇总

    1. 同屏播放视频 <video src="" x-webkit-airplay="true" webkit-playsinline="true ...

  3. ASCII码、ISO8859-1、Unicode、GBK和UTF-8 的区别

    为什么需要编码? 计算机中最小的存储单位是字节(byte),一个字节所能表示的字符数又有限,1byte=8bit,一个字节最多也只能表示255个字符,而世界上的语种又多,都有各种不同的字符,无法用一个 ...

  4. WPF 阴影效果

    WPF 阴影效果 制作WPF的阴影效果可以有很多种,貌似后来性能不好,然后被微软给X掉了.现在只有几个是可以用的,先暂时学习下现在有的,等以后看看用什么来代替原来的那些效果. 1.首先最常见的一个阴影 ...

  5. protobuf3.5.1使用的简单例子

    前言 1. 什么是protobuf Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,是一种轻便高效的结构化数据存储格式,平台无关 ...

  6. oracle EBS grant 您不具有执行当前操作的足够权限。请与您的系统管理员联系。

    解决方式1: Set the profiles of the below three to 'None' 设置以下三个配置文件为无 FND_VALIDATION_LEVELFND 验证层 FND_FU ...

  7. angularjs 中的scope继承关系——(2)

    转自:http://www.lovelucy.info/understanding-scopes-in-angularjs.html angularjs 中的scope继承关系 ng-include ...

  8. Vue--- 手动禁止ESlint

    使用vue-cli构建项目时,通常会问你要不要 “Use ESlint to lint your code?” 建议使用,这样会有助于规范我们的代码(这也是一种审美),ESlint的规范就不说了,写多 ...

  9. MatchText MatchStr 区别

    区别就是 是否区分大小写. str=字符串,区分 text=文本,不区分 时间长了就忘了. function AnsiCompareText(const S1, S2: string): Intege ...

  10. Hibernate检索学习

    Hibernate的检索策略:类级别的检索策略:1对多,多对多的检索策略:多对一,一对一的检索策略 1.类级别的检索策略,可以通过class元素的lazy属性来设置,该设置只对load方法有效果 2. ...