跨主機使用 Rex-Ray volume - 每天5分鐘玩轉 Docker 容器技術(77)
上一節我們在 docker1 上的 MySQL 容器中使用了 Rex-Ray volume mysqldata,更新了數據庫。現在容器已經刪除,今天將演示在 docker2 中重新使用這個卷。
在 dokcer2 上執行如下命令,啟動 MySQL 容器:
docker run --name mydb_on_docker2 -v mysqldata:/var/lib/mysql -d mysql
新容器也使用相同的卷 mysqldata
,不過這次不需要指定環境變量 MYSQL_ROOT_PASSWORD
,因為密碼已經保存到 mysqldata
裏面了。
現在 Rex-Ray volume
mysqldata
已經掛載到 docker2:
同樣可以按照之前的方法用 docker volume inspect
和 docker inspect
查看具體的 mount 信息,這裏不再贅述。
按照如下步驟驗證 MySQL 的數據:
① 進入到容器 mydb_on_docker2
。
② 登錄數據庫,密碼與 mydb_on_docker1
一致。
③ 切換到數據庫 mysql
。
④ 確認之前由 mydb_on_docker1
創建的表和寫入的數據完好無損。
Rex-Ray 可以提供跨主機的 volume,其生命周期不依賴 Docker Host 和容器,是 stateful 容器理想的數據存儲方式。
如何使用其他 storage provider 的 volume driver,部署和配置 storage provider 會有所不同,不過 Docker 在使用 volume 的方式都是一樣的:
-
通過
docker volume create --driver
創建 volume。 -
創建容器時用
-v
指定上一步創建的 volume。
Docker 的數據管理就討論到這裏,下一節開始學習容器的監控方案。
書籍:
1.《每天5分鐘玩轉Docker容器技術》
https://item.jd.com/16936307278.html
2.《每天5分鐘玩轉OpenStack》
https://item.jd.com/12086376.html
跨主機使用 Rex-Ray volume - 每天5分鐘玩轉 Docker 容器技術(77)