雲計算核心技術Docker教程:在Docker中使用繫結掛載

原標題:雲計算核心技術Docker教程:在Docker中使用繫結掛載

自Docker誕生以來,繫結掛載就已經存在。與卷相比,繫結安裝的功能有限。使用繫結安裝時,主機上的檔案或目錄將安裝到容器中。該檔案或目錄由其在主機上的絕對路徑引用。相比之下,當您使用卷時,將在主機上的Docker的儲存目錄中建立一個新目錄,並且Docker管理該目錄的內容。

該檔案或目錄不需要在Docker主機上已經存在。如果尚不存在,則按需建立。繫結掛載效能很高,但是它們依賴於主機的檔案系統,該檔案系統具有可用的特定目錄結構。如果要開發新的Docker

應用程式

,請考慮使用 命名卷。您不能使用Docker CLI命令直接管理繫結安裝。

選擇-v或——mount標誌

總的來說,——mount是更明確和冗長的。最大的區別是該-v語法在一個欄位中將所有選項組合在一起,而——mount 語法將它們分開。這是每個標誌的語法比較。

-v或——volume:由三個欄位組成,以冒號(:)分隔。這些欄位必須以正確的順序排列,並且每個欄位的含義不是立即顯而易見的。

對於繫結安裝,第一個欄位是主機上檔案或目錄的路徑。

第二個欄位是檔案或目錄在容器中的安裝路徑。

第三個欄位是可選的,並且是用逗號分隔的選項,諸如列表ro,z和Z。這些選項將在下面討論。

——mount:包含多個鍵值對,以逗號分隔,每個鍵值對都由一個=元組組成。該——mount語法是更詳細的比-v或——volume,但按鍵的順序並不顯著,並且標誌的價值更容易理解。

該type安裝件,其可以是bind,volume,或tmpfs。本主題討論繫結安裝,因此型別始終為bind。

該source的安裝。對於繫結安裝,這是Docker守護程式主機上檔案或目錄的路徑。可以指定為source或 src。

的destination作為其值,其中的檔案或目錄被安裝在容器的路徑。可以指定為destination,dst或target。

該readonly選項(如果存在)會使繫結安裝以只讀方式安裝到容器中。

該bind-propagation選項(如果存在)將更改 繫結傳播。可以是一個rprivate, private,rshared,shared,rslave,slave。

該——mount標誌不支援z或沒有Z用於修改selinux標籤的選項。

-v和——mount行為之間的區別

由於-vand——volume標誌已經很長時間成為Docker的一部分,因此它們的行為無法更改。這意味著和之間存在一種不同的行為。-v——mount

如果您使用-v或——volume繫結安裝Docker主機上尚不存在的檔案或目錄,請-v為您建立端點。始終將其建立為目錄。

如果您使用——mount繫結貼裝尚不泊塢窗主機上存在的檔案或目錄,碼頭工人也不會自動為您建立它,但會產生一個錯誤。

雲計算核心技術Docker教程:在Docker中使用繫結掛載