(五)跨主机使用 Rex-Ray volume
上一节我们在 docker1 上的 MySQL 容器中使用了 Rex-Ray volume mysqldata,更新了数据库。现在容器已经删除,今天将演示在 docker2 中重新使用这个卷。
在 dokcer2 上执行如下命令,启动 MySQL 容器:
docker run --name mydb_on_docker2 -v mysqldata:/var/lib/mysql -d mysql
新容器也使用相同的卷 mysqldata,不过这次不需要指定环境变量 MYSQL_ROOT_PASSWORD,因为密码已经保存到 mysqldata 里面了。
现在 Rex-Ray volume mysqldata 已经挂载到 docker2:
同样可以按照之前的方法用 docker volume inspect 和 docker inspect 查看具体的 mount 信息,这里不再赘述。
按照如下步骤验证 MySQL 的数据:
① 进入到容器 mydb_on_docker2。
② 登录数据库,密码与 mydb_on_docker1 一致。
③ 切换到数据库 mysql。
④ 确认之前由 mydb_on_docker1 创建的表和写入的数据完好无损。
Rex-Ray 可以提供跨主机的 volume,其生命周期不依赖 Docker Host 和容器,是 stateful 容器理想的数据存储方式。
如何使用其他 storage provider 的 volume driver,部署和配置 storage provider 会有所不同,不过 Docker 在使用 volume 的方式都是一样的:
- 通过 docker volume create --driver 创建 volume。
- 创建容器时用 -v 指定上一步创建的 volume。