天天看點

跨主機使用 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

新容器也使用相同的卷 <code>mysqldata</code>,不過這次不需要指定環境變量 <code>MYSQL_ROOT_PASSWORD</code>,因為密碼已經儲存到 <code>mysqldata</code> 裡面了。

現在 Rex-Ray volume <code>mysqldata</code> 已經挂載到 docker2:

跨主機使用 Rex-Ray volume - 每天5分鐘玩轉 Docker 容器技術(77)

同樣可以按照之前的方法用 <code>docker volume inspect</code> 和 <code>docker inspect</code> 檢視具體的 mount 資訊,這裡不再贅述。

按照如下步驟驗證 MySQL 的資料:

跨主機使用 Rex-Ray volume - 每天5分鐘玩轉 Docker 容器技術(77)

① 進入到容器 <code>mydb_on_docker2</code>。

② 登入資料庫,密碼與 <code>mydb_on_docker1</code> 一緻。

③ 切換到資料庫 <code>mysql</code>。

④ 确認之前由 <code>mydb_on_docker1</code> 建立的表和寫入的資料完好無損。

跨主機使用 Rex-Ray volume - 每天5分鐘玩轉 Docker 容器技術(77)

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

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

通過 <code>docker volume create --driver</code> 建立 volume。

建立容器時用 <code>-v</code> 指定上一步建立的 volume。

Docker  的資料管理就讨論到這裡,下一節開始學習容器的監控方案。

書籍:

1.《每天5分鐘玩轉Docker容器技術》

<a href="https://item.jd.com/16936307278.html" target="_blank">https://item.jd.com/16936307278.html</a>

2.《每天5分鐘玩轉OpenStack》

<a href="https://item.jd.com/12086376.html" target="_blank">https://item.jd.com/12086376.html</a>

跨主機使用 Rex-Ray volume - 每天5分鐘玩轉 Docker 容器技術(77)