所屬技術領域:
雲原生
| 名詞定義|
是一個可供一個或多個容器使用的特殊目錄。
可以達到以下目的:
1.繞過“拷貝寫”系統,以達到本地磁盤 IO 的性能,(比如運作一個容器,在容器中對資料卷修改内容,會直接改變主控端上的資料卷中的内容,是以是本地磁盤IO的性能,而不是先在容器中寫一份,最後還要将容器中的修改的内容拷貝出來進行同步。)
2.繞過“拷貝寫”系統,有些檔案不需要在 docker commit 打包進鏡像檔案。
3.在多個容器間共享目錄。
4.在宿主和容器間共享目錄。
5.在宿主和容器間共享一個檔案。
docker的理念将運作的環境打包形成容器運作,運作可以伴随容器,但是我們對資料的要求是希望持久化,容器之間可以共享資料,Docker容器産生的資料,如果不通過docker commit生成新的鏡像,使得資料作為容器的一部分儲存下來,那麼當容器被删除之後,資料也就沒了,為了能夠儲存資料,在docker容器中使用卷。卷就是目錄或者檔案,存在于一個或者多個容器中,但是不屬于聯合檔案系統,是以能夠繞過Union File System提供一些用于持久化資料或共享資料的特點。
| 技術特點|
• 資料卷可以在容器之間共享和重用
• 對資料卷的修改會立馬生效
• 對資料卷的更新,不會影響鏡像
• 資料卷預設會一直存在,即使容器被删除
| 相關詞|
Data Volume 資料卷: 是可以存放在一個或多個容器内的特定的目錄,提供獨立于容器之外的持久化存儲;是經過特殊設計的目錄,可以繞過聯合檔案系統(UFS),為一個或多個容器提供通路;
适用場景:
• 在多個容器之間共享資料,多個容器可以同時以隻讀或者讀寫的方式挂載統一個資料卷,進而共享資料卷中的資料
• 當主控端不能保證一定存在某一個目錄或一些固定的檔案路徑時,使用資料卷可以規避這種限制帶來的問題
• 當想把容器中的資料存儲在主控端之外的地方時,比如遠端主機上和雲存儲上
• 當你需要把容器資料在不同主控端之間備份、恢複或遷移時,資料卷是很好的選擇
資料覆寫問題
• 如果挂載一個空的資料卷到容器中的一個非空目錄中,那麼這個目錄下的檔案會被複制到資料卷中
• 如果挂載一個非空的資料卷到容器中的一個目錄中,那麼容器中的目錄會顯示資料卷中的資料。如果原來容器中的目錄有資料,那麼原始資料會被隐藏掉
這兩個規則都非常重要,靈活利用第一個規則可以幫助我們初始化資料卷中的内容。掌握第二個規則可以保證挂載資料卷後的資料總是你期望的結果。