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 給容...