社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

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

CloudMan • 6 年前 • 383 次点击  

第76篇

创建 Rex-Ray volume

前面我们安装部署了 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 初始分配的空间很小。

接下来我们将:

  1. 在 dokcer1 上启动 MySQL 容器 mydb_on_docker1,并使用 mysqldata 作为数据卷。

  2. 更新数据库,然后销毁 mydb_on_docker1

  3. 在 dokcer2 上启动 MySQL 容器 mydb_on_docker2,也使用 mysqldata 作为数据卷,然后验证数据的有效性。

创建容器并使用数据卷

在 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



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/KXSVisNXRR
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/3652
 
383 次点击