zoukankan      html  css  js  c++  java
  • 容器网络(九)创建 Rex-Ray volume【71】

    (四)创建 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 作为数据卷,然后验证数据的有效性。

    (1)创建容器并使用数据卷

    在 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

    (2)更新数据库

    按照如下步骤更新 MySQL 数据:

    ① 进入容器 mydb_on_docker1

    ② 登录数据库,输入容器启动时由环境变量 MYSQL_ROOT_PASSWORD 指定的密码。

    ③ 切换到数据库 mysql

    ④ 创建数据库表 my_id

    ⑤ 插入一条数据。

    ⑥ 确认数据已经写入。

    执行 docker rm -f mydb_on_docker1 删除容器。

    现在容器已经被销毁了,下一节我们将在 docker2 上创建新容器并重新使用 volume mysqldata。

  • 相关阅读:
    Linux中chown和chmod的区别和用法(转)
    一个小时学会Git
    核心团队的信任和默契——超越管理
    一个项目怎么开发出来
    产品经理职责
    从技术到管理:思维转变是关键
    可扩展Web架构与分布式系统
    浅谈大型web系统架构
    亿级Web系统搭建——单机到分布式集群
    Docker容器进入的4种方式
  • 原文地址:https://www.cnblogs.com/cuiyongchao007/p/14205871.html
Copyright © 2011-2022 走看看