深入理解Docker Volume

2021-09-19 15:16:50 字數 572 閱讀 1873

-從docker irc頻道以及stackoverflow的問題來看,很多人還不是很明白docker volume的工作原理。在這篇文章中,我會盡最大的努力來解釋volume是如何工作的,並展示一些最佳實踐。這篇文章主要是針對那些對volume不了解的docker使用者,當然有經驗的使用者也可以通過本文了解一些volume的細節。

想要了解docker volume,首先我們需要知道docker的檔案系統是如何工作的。docker映象是由多個檔案系統(唯讀層)疊加而成。當我們啟動乙個容器的時候,docker會載入唯讀映象層並在其上(譯者注:映象棧頂部)新增乙個讀寫層。如果執行中的容器修改了現有的乙個已經存在的檔案,那該檔案將會從讀寫層下面的唯讀層複製到讀寫層,該檔案的唯讀版本仍然存在,只是已經被讀寫層中該檔案的副本所隱藏。當刪除docker容器,並通過該映象重新啟動時,之前的更改將會丟失。在docker中,唯讀層及在頂部的讀寫層的組合被稱為union file system(聯合檔案系統)。

為了能夠儲存(持久化)資料以及共享容器間的資料,docker提出了volume的概念。簡單來說,volume就是目錄或者檔案,它可以繞過預設的聯合檔案系統,而以正常的檔案或者目錄的形式存在於宿主機上。

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...

mysql 索引深入理解 深入理解MySql的索引

為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...

深入理解C語言 深入理解指標

關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...