在容器中管理數據主要有兩種方式: 一、數據卷(Data Volumes) 二、掛載主機目錄 (Bind mounts)
數據卷
數據卷是一個可供一個或多個容器使用的特殊目錄,它繞過UFS,能夠提供不少有用的特性:mysql
數據卷 能夠在容器之間共享和重用
對 數據卷 的修改會立馬生效
對 數據卷 的更新,不會影響鏡像
數據卷 默認會一直存在,即便容器被刪除
注意:數據卷 的使用,相似於 Linux 下對目錄或文件進行 mount,鏡像中的被指定爲掛載點的目錄中的文件會隱藏掉,能顯示看的是掛載的 數據卷。sql
選擇 -v 仍是 -–mount 參數: Docker 新用戶應該選擇--mount參數,經驗豐富的 Docker 使用者對-v或者 --volume已經很熟悉了,可是推薦使用--mount參數。docker
演示思路:
一、建立一個mysql2 pod,建立一個數據庫
二、刪除mysql2 pod
三、建立mysql3 pod,指定mysql2的數據卷,查看以前mysql2的數據庫是否還存在數據庫
經過docker run建立一個mysql2的容器
docker run -d --name mysql2 -p 3303:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:5.7
經過上圖能夠看到進入pod之後建立一個數據庫uu。ide
經過上圖能夠看到mysql2的掛載的存儲卷爲b6e3.3d
刪除mysql2這個podcode
而後查看到b6e3這個存儲卷仍是存在的blog
從新建立一個mysql3的pod 而且指定b6e3這個數據卷
而後發現以前建立的數據庫uu仍然是存在的。
經過以上能夠驗證數據卷是持久性的,即便容器被刪除也不影響數據的使用。it