前面我们安装部署了 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

创建 Rex-Ray volume - 每天5分钟玩转 Docker 容器技术(76)的更多相关文章

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

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

  2. 5 秒创建 k8s 集群 - 每天5分钟玩转 Docker 容器技术(115)

    据说 Google 的数据中心里运行着超过 20 亿个容器,而且 Google 十年前就开始使用容器技术. 最初,Google 开发了一个叫 Borg 的系统(现在命令为 Omega)来调度如此庞大数 ...

  3. hostPath Volume - 每天5分钟玩转 Docker 容器技术(148)

    hostPath Volume 的作用是将 Docker Host 文件系统中已经存在的目录 mount 给 Pod 的容器.大部分应用都不会使用 hostPath Volume,因为这实际上增加了 ...

  4. docker managed volume - 每天5分钟玩转 Docker 容器技术(40)

    docker managed volume 与 bind mount 在使用上的最大区别是不需要指定 mount 源,指明 mount point 就行了.还是以 httpd 容器为例: 我们通过 - ...

  5. volume 方式使用 Secret - 每天5分钟玩转 Docker 容器技术(157)

    Pod 可以通过 Volume 或者环境变量的方式使用 Secret,今天先学习 Volume 方式. Pod 的配置文件如下所示: ① 定义 volume foo,来源为 secret mysecr ...

  6. 如何创建 Swarm 集群?- 每天5分钟玩转 Docker 容器技术(95)

    本节我们将创建三节点的 swarm 集群. swarm-manager 是 manager node,swarm-worker1 和 swarm-worker2 是 worker node. 所有节点 ...

  7. k8s 创建资源的两种方式 - 每天5分钟玩转 Docker 容器技术(124)

    命令 vs 配置文件 Kubernetes 支持两种方式创建资源: 1. 用 kubectl 命令直接创建,比如: kubectl run nginx-deployment --image=nginx ...

  8. 如何安装和配置 Rex-Ray?- 每天5分钟玩转 Docker 容器技术(74)

    Rex-Ray 是一个优秀的 Docker volume driver,本节将演示其安装和配置方法. Rex-Ray 以 standalone 进程的方式运行在 Docker 主机上,安装方法很简单, ...

  9. 配置 VirtualBox backend - 每天5分钟玩转 Docker 容器技术(75)

    Rexy-Ray 支持多种 backend,上一节我们已经安装配置了 Rex-Ray,今天演示如何配置 VirtualBox backend. 在 VirtualBox 宿主机,即我的笔记本上启动 v ...

随机推荐

  1. 【Linux】ssh免密登录

    一.ssh免密配置 ssh 无密码登录要使用公钥与私钥.linux下可以用用ssh-keygen生成公钥/私钥对,下面我以CentOS为例.有机器A(192.168.1.155),B(192.168. ...

  2. [2017-08-09]一则使用WinDbg工具调试iis进程调查内存占用过高的案例

    最近遇到一个奇葩内存问题,跟了三四天,把Windbg玩熟了,所以打算分享下. 症状简介 我们团队的DEV开发环境只有一台4核16G的win2012r2. 这台服务器上装了SqlServer.TFS(项 ...

  3. nohup介绍

    背景 我们通常使用&将前台任务变为后台任务执行,但是如果只是使用&,那么在突然断网或者关闭启动该任务的终端(ps:可使用putty来测试,部分软件如mobaxterm做了优化,关闭终端 ...

  4. Redis基本数据类型

    -------------------Redis基本数据类型------------------- 1.String 字符串     1.概念         1.String 是redis最基本的类 ...

  5. C#:委托(delegate)和事件(event) (转)

    委托(delegate): 它是C#语言里面的函数指针,代表可以指向某一个函数,在运行的时候调用这个函数的实现.下面来看看它的实现步骤: 声明一个delegate对象. 实现和delegate具有相同 ...

  6. hdu 3722 二分图 最优完备匹配 KM算法

    这题只要想到是最优完备匹配就行了: 题意:给出n个字符串,若两两相连,将前一个反置添加到后一个后面,相连的值为两个字串从头开始相等的字符个数: 问如何匹配得出最大值: 思路:建图,套模板. 代码: # ...

  7. nginx小问题

    配置nginx与ftp图片服务器:安装后,要在/usr/local/nginx/conf/nginx.conf里面的server中(带有localhost的那一块)修改为location \ {roo ...

  8. 第二周C++学习总结

    经过这个星期的学习,认识C语言C++语言,学会打代码,但是打出第一个代码还是经历了很大困难,首先我对于打代码真的一窍不通,其次我连打代码的软件也不会装,但在班导的帮助下我还是装好了软件,在打第一个代码 ...

  9. 201521123071 《JAVA程序设计》第六周学习总结

    第6周-接口.内部类与Swing 1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多 ...

  10. 201521123035《Java程序设计》第一周学习总结

     1.本周学习总结 本周学习了Java从诞生到如今的部分历史,并通过了老师的课堂演示了解了Java在cmd中的编译过程.然后还学习了JDK,JRE,JVM. 2. 书面作业 1.为什么java程序可以 ...