36 Docker 的兩類儲存資源

2022-08-20 13:57:11 字數 1361 閱讀 2209

我們從本章開始討論 docker 儲存。

docker 為容器提供了兩種存放資料的資源:

由 storage driver 管理的映象層和容器層。

data volume。

我們會詳細討論它們的原理和特性。

容器由最上面乙個可寫的容器層,以及若干唯讀的映象層組成,容器的資料就存放在這些層中。這樣的分層結構最大的特性是 copy-on-write:

新資料會直接存放在最上面的容器層。

修改現有資料會先從映象層將資料複製到容器層,修改後的資料直接儲存在容器層中,映象層保持不變。

如果多個層中有命名相同的檔案,使用者只能看到最上面那層中的檔案。

分層結構使映象和容器的建立、共享以及分發變得非常高效,而這些都要歸功於 docker storage driver。正是 storage driver 實現了多層資料的堆疊並為使用者提供乙個單一的合併之後的統一檢視。

沒有哪個 driver 能夠適應所有的場景。

driver 本身在快速發展和迭代。

不過 docker 官方給出了乙個簡單的答案:

優先使用 linux 發行版預設的 storage driver

docker 安裝時會根據當前系統的配置選擇預設的 driver。預設 driver 具有最好的穩定性,因為預設 driver 在發行版上經過了嚴格的測試。

執行docker info檢視 ubuntu 的預設 driver:

ubuntu 用的 overlay2,底層檔案系統是 extfs,各層資料存放在/var/lib/docker。

redhat/centos 的預設 driver 是 overlay2。

對於某些容器,直接將資料放在由 storage driver 維護的層中是很好的選擇,比如那些無狀態的應用。無狀態意味著容器沒有需要持久化的資料,隨時可以從映象直接建立。

比如 busybox,它是乙個工具箱,我們啟動 busybox 是為了執行諸如 wget,ping 之類的命令,不需要儲存資料供以後使用,使用完直接退出,容器刪除時存放在容器層中的工作資料也一起被刪除,這沒問題,下次再啟動新容器即可。

但對於另一類應用這種方式就不合適了,它們有持久化資料的需求,容器啟動時需要載入已有的資料,容器銷毀時希望保留產生的新資料,也就是說,這類容器是有狀態的。

分類器的兩類形式

在對gan進行學習的過程中參考了一些好的文章,在此總結出來自己認為有意義的學習筆記。參考原文 一 決策函式y f x 輸入乙個x,它就輸出乙個y,y與乙個閾值比較,根據比較結果判定x屬於哪個類別。例如兩類 w1和w2 分類問題,如果y大於閾值,x就屬於類w1,如果小於閾值就屬於類w2。二 條件概率分...

假設檢驗的兩類錯誤

棄真錯誤也叫第i類錯誤或 錯誤 它是指 原假設實際上是真的,但通過樣本估計總體後,拒絕了原假設。明顯這是錯誤的,我們拒絕了真實的原假設,所以叫棄真錯誤,這個錯誤的概率我們記為 這個值也是顯著性水平,在假設檢驗之前我們會規定這個概率的大小。取偽錯誤也叫第ii類錯誤或 錯誤 它是指 原假設實際上假的,但...

區分JSP中的兩類注釋方式

注釋對於程式猿來說在常見不過了,本文說說在使用jsp中是的一些注釋方式以及它們的一些區別,歡迎補充指正。首先在jsp頁面中,jsp作為一種特殊的servlet,先說說這種情況的注釋 1.整塊jsp 注釋 jsp 塊 2.單行jsp 注釋 jsp單行 3.多行jsp 注釋 jsp多行 以上三種就是js...