天天看点

跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)

上一节我们在 docker1 上的 MySQL 容器中使用了 Rex-Ray volume mysqldata,更新了数据库。现在容器已经删除,今天将演示在 docker2 中重新使用这个卷。

在 dokcer2 上执行如下命令,启动 MySQL 容器:

docker run --name mydb_on_docker2 -v mysqldata:/var/lib/mysql -d mysql

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

现在 Rex-Ray volume <code>mysqldata</code> 已经挂载到 docker2:

跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)

同样可以按照之前的方法用 <code>docker volume inspect</code> 和 <code>docker inspect</code> 查看具体的 mount 信息,这里不再赘述。

按照如下步骤验证 MySQL 的数据:

跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)

① 进入到容器 <code>mydb_on_docker2</code>。

② 登录数据库,密码与 <code>mydb_on_docker1</code> 一致。

③ 切换到数据库 <code>mysql</code>。

④ 确认之前由 <code>mydb_on_docker1</code> 创建的表和写入的数据完好无损。

跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)

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

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

通过 <code>docker volume create --driver</code> 创建 volume。

创建容器时用 <code>-v</code> 指定上一步创建的 volume。

Docker  的数据管理就讨论到这里,下一节开始学习容器的监控方案。

书籍:

1.《每天5分钟玩转Docker容器技术》

<a href="https://item.jd.com/16936307278.html" target="_blank">https://item.jd.com/16936307278.html</a>

2.《每天5分钟玩转OpenStack》

<a href="https://item.jd.com/12086376.html" target="_blank">https://item.jd.com/12086376.html</a>

跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)