Docker使用rexray做跨主機儲存

2022-05-28 05:33:08 字數 1252 閱讀 7393

rex-ray 是乙個優秀的 docker volume driver,不過只有最新版docker才支援。

rex-ray 以 standalone 程序的方式執行在 docker 主機上,安裝方法很簡單,在需要使用 rex-ray driver 的主機 docker1 和 docker2 上執行如下命令:

然後建立並編輯 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

Docker是什麼?可以用Docker做什麼?

docker的思想來自於貨櫃,貨櫃解決了什麼問題?在一艘大船上,可以把貨物規整的擺放起來。並且各種各樣的貨物被貨櫃標準化了,貨櫃和貨櫃之間不會互相影響。那麼我就不需要專門運送水果的船和專門運送化學品的船了。只要這些貨物在貨櫃裡封裝的好好的,那我就可以用一艘大船把他們都運走。docker就是類似的理念...

Docker是什麼?可以用Docker做什麼?

docker的思想來自於貨櫃,貨櫃解決了什麼問題?在一艘大船上,可以把貨物規整的擺放起來。並且各種各樣的貨物被貨櫃標準化了,貨櫃和貨櫃之間不會互相影響。那麼我就不需要專門運送水果的船和專門運送化學品的船了。只要這些貨物在貨櫃裡封裝的好好的,那我就可以用一艘大船把他們都運走。docker就是類似的理念...

《Docker的使用》 二 Docker基本使用

1 建立並執行乙個互動式容器 docker run name my ubuntu it ubuntu bin bash name 指定乙個容器名字,如果不加 name則由docker隨機分配乙個容器名字 合法名字只能包含 大小寫字母,數字,下劃線,圓點,橫線 i t i 保持標準輸入的開啟 t 給容...