Docker使用rexray做跨主機存儲


Rex-Ray 是一個優秀的 Docker volume driver,不過只有最新版docker才支持。

Rex-Ray 以 standalone 進程的方式運行在 Docker 主機上,安裝方法很簡單,在需要使用 Rex-Ray driver 的主機 docker1 和 docker2 上運行如下命令:

curl -sSL https://rexray.io/install | sh

然后創建並編輯 Rex-Ray 的配置文件 /etc/rexray/config.yml

libstorage:
  service: rbd
rbd:

重啟 Rex-Ray 服務:

  systemctl restart rexray.service

創建塊設備:

  rbd create --size 4096 my_data

運行 rexray volume ls 測試 Rex-Ray 是否能夠正常工作。

運行docker volume ls 查看可用的卷。

 

在 dokcer1 上啟動 MySQL 容器 mydb_on_docker1,並使用 mysqldata 作為數據卷。

  docker run --name mydb1 -v my_data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql

更新數據庫,然后銷毀 mydb1:

  docker rm -f mydb_on_docker1

在 dokcer2 上啟動 MySQL 容器 mydb2,也使用 my_data 作為數據卷,然后驗證數據的有效性。

  docker run --name mydb2 -v my_data:/var/lib/mysql -d mysql

新容器也使用相同的卷 my_data,不過這次不需要指定環境變量 MYSQL_ROOT_PASSWORD,因為密碼已經保存到 my_data 里面了。

 

Rex-Ray 可以提供跨主機的 volume,其生命周期不依賴 Docker Host 和容器,是 stateful 容器理想的數據存儲方式。

如何使用其他 storage provider 的 volume driver,部署和配置 storage provider 會有所不同,不過 Docker 在使用 volume 的方式都是一樣的:

  通過 docker volume create --driver 創建 volume,創建容器時用 -v 指定上一步創建的 volume


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM