(四)創建 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 初始分配的空間很小,
接下來我們將:
- 在 dokcer1 上啟動 MySQL 容器
mydb_on_docker1,并使用mysqldata作為資料卷, - 更新資料庫,然后銷毀
mydb_on_docker1, - 在 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,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/242248.html
標籤:其他
