创建 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(76)
2017-10-03 21:37
681 查看
前面我们安装部署了 Rex-Ray,并且成功配置 VirtualBox backend,今天演示如何创建和使用 Rex-Ray volume。
在 docker1 或 docker2 上执行如下命令创建 volume:
docker volume create --driver rexray --name=mysqldata --opt=size=2
volume
2GB。在 VirtualBox 宿主机中也能看到
因为 VirtualBox 使用的是 thin-provisioning,volume 初始分配的空间很小。
接下来我们将:
在 dokcer1 上启动 MySQL 容器
更新数据库,然后销毁
在 dokcer2 上启动 MySQL 容器
[b]创建容器并使用数据卷[/b]
在 dokcer1 上执行如下命令,启动 MySQL 容器:
docker run --name mydb_on_docker1 -v mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=passw0rd -d mysql
volume mount 到 MySQL 的数据目录。
我们接下来从更底层分析一下这个 mount 是如何实现的。
首先在 VirtualBox 中查看虚拟机 docker1 的 storage 配置:
Rex-Ray volume
docker1。
执行
目录
mount 到了容器的目录
Rex-Ray volume
mount 到了容器
更新数据库
按照如下步骤更新 MySQL 数据:
① 进入容器
② 登录数据库,输入容器启动时由环境变量
③ 切换到数据库
④ 创建数据库表
⑤ 插入一条数据。
⑥ 确认数据已经写入。
执行
现在容器已经被销毁了,下一节我们将在 docker2 上创建新容器并重新使用 volume mysqldata。
书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html
在 docker1 或 docker2 上执行如下命令创建 volume:
docker volume create --driver rexray --name=mysqldata --opt=size=2
volume
mysqldata创建成功,大小为
2GB。在 VirtualBox 宿主机中也能看到
mysqldata。
因为 VirtualBox 使用的是 thin-provisioning,volume 初始分配的空间很小。
接下来我们将:
在 dokcer1 上启动 MySQL 容器
mydb_on_docker1,并使用
mysqldata作为数据卷。
更新数据库,然后销毁
mydb_on_docker1。
在 dokcer2 上启动 MySQL 容器
mydb_on_docker2,也使用
mysqldata作为数据卷,然后验证数据的有效性。
[b]创建容器并使用数据卷[/b]
在 dokcer1 上执行如下命令,启动 MySQL 容器:
docker run --name mydb_on_docker1 -v mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=passw0rd -d mysql
-v mysqldata:/var/lib/mysql将之前创建的
volume mount 到 MySQL 的数据目录。
我们接下来从更底层分析一下这个 mount 是如何实现的。
首先在 VirtualBox 中查看虚拟机 docker1 的 storage 配置:
Rex-Ray volume
mysqldata已经挂载到
docker1。
执行
docker volume inspect mysqldata:
mysqldata已被 mount 到 docker1
目录
/var/lib/libstorage/volumes/mysqldata/data,执行
docker inspect mydb_on_docker1查看容器的 volume 信息:
/var/lib/libstorage/volumes/mysqldata/data被
mount 到了容器的目录
/var/lib/mysql,这样
Rex-Ray volume
mysqldata就已经
mount 到了容器
mydb_on_docker1。
更新数据库
按照如下步骤更新 MySQL 数据:
① 进入容器
mydb_on_docker1。
② 登录数据库,输入容器启动时由环境变量
MYSQL_ROOT_PASSWORD指定的密码。
③ 切换到数据库
mysql。
④ 创建数据库表
my_id。
⑤ 插入一条数据。
⑥ 确认数据已经写入。
执行
docker rm -f mydb_on_docker1删除容器。
现在容器已经被销毁了,下一节我们将在 docker2 上创建新容器并重新使用 volume mysqldata。
书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html
相关文章推荐
- 创建 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(76)
- 创建 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(76)
- 创建 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(76)
- 创建 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(76)
- 跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)
- 跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)
- 跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)
- 跨主机使用 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(77)
- 如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)
- k8s 创建资源的两种方式 - 每天5分钟玩转 Docker 容器技术(124)
- 如何创建 Swarm 集群?- 每天5分钟玩转 Docker 容器技术(95)
- 创建 overlay 网络 - 每天5分钟玩转 Docker 容器技术(50)
- 创建 Machine - 每天5分钟玩转 Docker 容器技术(46)
- 创建 overlay 网络 - 每天5分钟玩转 Docker 容器技术(50)
- 如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)
- k8s 创建资源的两种方式 - 每天5分钟玩转 Docker 容器技术(124)
- 5 秒创建 k8s 集群 - 每天5分钟玩转 Docker 容器技术(115)
- 创建 overlay 网络 - 每天5分钟玩转 Docker 容器技术(50)
- 如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)
- 如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)