跨主机储存
两台docker主机上都运行install脚本
[root@localhost ~]# sh install rexray has been installed to /usr/bin/rexray REX-Ray ------- Binary: /usr/bin/rexray Flavor: client+agent+controller SemVer: 0.11.4 OsArch: Linux-x86_64 Commit: e7414eaa971b27977d2283f2882825393493179d Formed: Wed, 16 Jan 2019 00:03:57 CST
配置VirtualBox backend
在virtualbox宿主机 启动vboxwebsrv 服务:vboxwebsrv -H 0.0.0.0 (此路径为你安装vbox虚拟机的目录里)
[E:vxbox]$ VBoxWebSrv.exe -H 0.0.0.0 00:00:00.000152 main VirtualBox web service 6.1.10 r138449 win.amd64 (Jun 4 2020 17:22:00) release log 00:00:00.000153 main Log opened 2020-06-09T14:33:01.600244000Z 00:00:00.000154 main Build Type: release 00:00:00.000157 main OS Product: Windows 10 00:00:00.000158 main OS Release: 10.0.18363 00:00:00.000160 main OS Service Pack: 00:00:00.075674 main DMI Product Name: N8xEJEK 00:00:00.092383 main DMI Product Version: Not Applicable 00:00:00.092396 main Firmware type: UEFI 00:00:00.092682 main Secure Boot: VERR_PRIVILEGE_NOT_HELD 00:00:00.092702 main Host RAM: 16230MB (15.8GB) total, 10062MB (9.8GB) available 00:00:00.092705 main Executable: E:vxboxVBoxWebSrv.exe 00:00:00.092706 main Process ID: 8456 00:00:00.092706 main Package type: WINDOWS_64BITS_GENERIC 00:00:00.183354 SQPmp Socket connection successful: host = 0.0.0.0, port = 18083, master socket = 1048 00:00:05.175575 Watchdog Statistics: 0 websessions, 0 references
关闭virtualbox的登录认证:
[E:vxbox]$ VBoxManage.exe setproperty websrvauthlibrary null
关闭虚拟机,修改docker1和docker2的storage配置:并且删除IDE controller,设置SATA controller的port数量为最大值 30.
[root@localhost ~]# cd /etc/rexray/ [root@localhost rexray]# ls rexray.env tls [root@localhost rexray]# rz [root@localhost rexray]# cat config.yml rexray.env tls/ [root@localhost rexray]# cat config.yml libstorage: service: virtualbox virtualbox: endpoint: http://192.168.56.1:18083 volumePath: /Users/Administrator/Volumes controllerName: SATA
volumePath: /Users/Administrator/Volumes 此路径为你的用户名目录
重启rexray 并且查看vxbox虚拟机的所有存储
[root@localhost rexray]# systemctl restart rexray [root@localhost rexray]# rexray volume ls ID Name Status Size ebca95bf-273e-4d8d-bef9-a652e0414569 docker1.vdi attached 20 2e264fc3-a15e-422e-941d-35835d0346e3 docker2.vdi unavailable 20
[root@localhost rexray]# docker volume create --driver rexray --name=mysqldata --opt=size=2 mysqldata
创建并且使用rex-ray volume 在docker1 和docker2 上执行如上命令创建volume,在宿主机上也可以看到mysqldata
启动MySQL容器
[root@localhost rexray]# docker run -dit --name mysqltest1 -v mydata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
mysql> create database caoyi; Query OK, 1 row affected (0.00 sec) mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | caoyi | | mysql | | performance_schema | | sys | +--------------------+ 5 rows in set (0.00 sec) mysql> use caoyi; Database changed mysql> insert into test values(1,'zhangshan'); Query OK, 1 row affected (0.11 sec) mysql> insert into test values(2,'lisi'); Query OK, 1 row affected (0.29 sec) mysql> select * from test; +------+-----------+ | id | name | +------+-----------+ | 1 | zhangshan | | 2 | lisi | +------+-----------+ 2 rows in set (0.00 sec)
docker1创建一个表并且插入两个数据,然后删除容器。在docker2运行容器
[root@localhost rexray]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 83b34a18b232 mysql:5.7 "docker-entrypoint.s…" 16 minutes ago Up 16 minutes 3306/tcp, 33060/tcp mysqltest1 [root@localhost rexray]# docker stop 83b34a18b232 83b34a18b232 [root@localhost rexray]# docker rm 83b34a18b232 83b34a18b232 [root@localhost rexray]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
运行容器的时候不需要加password
可以看到在docker1创建的caoyi库还在