docker數據共享與持久化

在容器中管理數據主要有兩種方式:
1、數據卷(Data Volumes)
2、掛載主機目錄 (Bind mounts)

數據卷
數據卷是一個可供一個或多個容器使用的特殊目錄,它繞過UFS,可以提供很多有用的特性:

數據卷 可以在容器之間共享和重用
對 數據卷 的修改會立馬生效
對 數據卷 的更新,不會影響鏡像
數據卷 默認會一直存在,即使容器被刪除
注意:數據卷 的使用,類似於 Linux 下對目錄或文件進行 mount,鏡像中的被指定爲掛載點的目錄中的文件會隱藏掉,能顯示看的是掛載的 數據卷。

選擇 -v 還是 -–mount 參數: Docker 新用戶應該選擇--mount參數,經驗豐富的 Docker 使用者對-v或者 --volume已經很熟悉了,但是推薦使用--mount參數。

演示思路:
1、創建一個mysql2 pod,創建一個數據庫
2、刪除mysql2 pod
3、創建mysql3 pod,指定mysql2的數據卷,查看之前mysql2的數據庫是否還存在

通過docker run創建一個mysql2的容器
docker run -d --name mysql2 -p 3303:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:5.7
docker數據共享與持久化
通過上圖可以看到進入pod以後創建一個數據庫uu。

docker數據共享與持久化
通過上圖可以看到mysql2的掛載的存儲卷爲b6e3.

刪除mysql2這個pod
docker數據共享與持久化

然後查看到b6e3這個存儲卷還是存在的
docker數據共享與持久化

重新創建一個mysql3的pod 並且指定b6e3這個數據卷
docker數據共享與持久化
docker數據共享與持久化
然後發現之前創建的數據庫uu仍然是存在的。
通過以上可以驗證數據卷是持久性的,即使容器被刪除也不影響數據的使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章