您的位置:首页 > 运维架构 > Docker

创建 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
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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Docker 容器 教程
相关文章推荐