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. 《A_Pancers团队》作业5—团队项目需求改进与系统设计

    一:团队项目需求改进 1. <音乐播放软件需求规格说明书>的不足 在上周的<音乐播放软件需求规格说明书>我们还需要改进的地方有:1.搜索功能:2.界面的简洁美观化:3.按键的重 ...

  2. iOS进阶_Socket(Socket简介&代码演练)

    网络通讯三要素 TCP & UDP 三次握手 断开连接的四次握手 Socket套接字 了解了上面的概念,我们开始演练一下Socket #import "ViewController. ...

  3. js 数组的删除

    var test=[1,2,1,2,3,4,5,6,7]; 1.remove test.remove(1)     位置 test.remove(-2) test.remove(2,3) 2 dele ...

  4. nginx常用命令汇总

    nginx基础命令: sudo nginx // 开启nginx服务器 sudo nginx -s reload // 重启nginx服务器 sudo nginx -s stop // 关闭nginx ...

  5. 最长的文件路径 Longest Absolute File Path

    2018-07-30 22:05:52 问题描述: 问题求解: 本题个人感觉还是挺有意思的,题目要求的是最长的文件路径,其实是需要keep tracking路径长度,如果出现文件则需要进行比较,看是否 ...

  6. crond 的注意点

    本来在控制台调试的好好的程序,一通过crond运行, 就执行不了. 一般需要注意: 1) 环境变量 当前目录 会变成用户的Home 2)  /var/log/messages 可以看出 crond 调 ...

  7. English trip -- MC(情景课)3 D

    xu言: have a nice weekend... sentences How many people are there in you family? they are 3 people in ...

  8. win10 WiFi 密码查询 命令

    如果你笔记本有WiFi,正好你系统又是Win10 那么... netsh wlan show profile * key=clear

  9. ACM-ICPC Beijing Online A The Book List

    比赛的时候一眼就看出是字典树+DFS了,然而这题题意比较难理解,还有不少WA点.所以很快敲完之后和队友反复斟酌题意,修改代码.结果还是交了3发WA.最后猜测目录和书在同一个母目录域下同名是不同的,增加 ...

  10. python-day6---流程控制

    # if 条件:# 子代码1# 子代码2# 子代码3 # if True:# print('ok')# print('=====?>')# print('=====?>')# print( ...