docker從零開始 儲存(六)儲存驅動如何選擇

2022-02-26 21:43:22 字數 4153 閱讀 6842

理想情況下,將非常少的資料寫入容器的可寫層,並使用docker捲來寫入資料。

但是,某些工作負載要求您能夠寫入容器的可寫層。

這是儲存驅動程式的用武之地。

docker使用可插拔架構支援多種不同的儲存驅動程式。

儲存驅動程式控制在docker主機上儲存和管理映像和容器的方式。

閱讀完儲存驅動程式概述後

,下一步是為工作負載選擇最佳儲存驅動程式。

在做出此決定時,需要考慮三個高階別因素:

選擇順序在docker的源**中定義。

您可以通過檢視

docker ce 18.03的源**

來檢視訂單。 

如果您執行不同版本的docker,可以使用檔案檢視器頂部的分支選擇器來選擇不同的分支。

您的選擇可能受docker版本,作業系統和分發版的限制。

例如,aufs僅在ubuntu和debian上支援,並且可能需要安裝額外的軟體包,而btrfs僅在sles上支援

,而sles僅支援docker ee。

見 每個linux發行版支援儲存驅動程式

。某些儲存驅動程式要求您使用特定格式作為後備檔案系統。

如果您有使用特定支援檔案系統的外部要求,這可能會限制您的選擇。

見 支援後盾的檔案系統

。在縮小了可供選擇的儲存驅動程式之後,您的選擇取決於工作負載的特性以及所需的穩定性級別。

有關幫助做出最終決定,

請參閱其他注意事項

在較高階別,您可以使用的儲存驅動程式部分取決於您使用的docker版本。

此外,docker不建議任何需要您禁用作業系統安全功能的配置,例如

在centos上

selinux使用overlayoverlay2驅動程式時

需要禁用 

。對於docker ee和cs-engine,支援儲存驅動程式的權威資源是 

產品相容性矩陣

。要從docker獲得商業支援,您必須使用支援的配置。

對於docker ce,只測試了一些配置,並且您的作業系統核心可能不支援每個儲存驅動程式。

通常,以下配置適用於最新版本的linux發行版:

linux發行版

推薦的儲存驅動

ubuntu上的docker ce

aufs

overlay2(ubuntu的14.04.4或更高版本,16.04或更高版本), ,

overlayzfsvfs

debian上的docker ce

aufs

overlay2(debian的擴充套件), 

overlay

vfs

centos上的docker ce

vfs

fedora上的docker ce

overlay2(fedora 26或更高版本,實驗性),

overlay(實驗性的),

vfs

如果可能,overlay2是推薦的儲存驅動程式。

第一次安裝docker時,

overlay2預設使用。

以前,aufs在可用時是預設使用,但現在不再是這種情況。

如果要aufs在未來的新安裝中

使用,則需要顯式配置它,並且可能需要安裝額外的軟體包,例如

linux-image-extra

見aufs

。在使用的現有安裝中aufs,仍然使用它。

如果有疑問,最好的全能配置是使用具有支援overlay2儲存驅動程式

的核心的現代linux發行版

,並將docker卷用於寫入繁重的工作負載,而不是依賴於將資料寫入容器的可寫層。

vfs儲存驅動程式通常不是最好的選擇。

在使用vfs儲存驅動程式

之前,請務必閱讀 

其效能和儲存特性和限制

。例如,您可以使用

btrfsdocker ce,即使不建議在任何docker ce平台上使用,您需要自擔風險。

上表中的建議基於自動回歸測試以及已知適用於大量使用者的配置。

如果您使用推薦的配置並找到可重現的問題,則可能會很快修復。

如果根據此表不推薦您要使用的驅動程式,則可以自行承擔風險。

您可以而且應該仍然報告您遇到的任何問題。

但是,此類問題的優先順序低於使用推薦配置時遇到的問題。

適用於mac的docker和適用於windows的docker適用於開發,而非生產。

無法在這些平台上修改儲存驅動程式。

關於docker,後備檔案系統是所在的檔案系統/var/lib/docker/

某些儲存驅動程式僅適用於特定的後備檔案系統。

儲存驅動程式

支援的後備檔案系統

overlay, 

overlay2

ext4, 

xfs

aufs

ext4, 

xfs

direct-lvm

btrfs

btrfs

zfs

zfs

除此之外,每個儲存驅動程式都有自己的效能特徵,使其或多或少適合不同的工作負載。

考慮以下概括:

有關效能,適用性和最佳實踐的更多資訊,請參閱每個儲存驅動程式的文件。

如果您的企業使用san,nas,硬體raid或其他共享儲存系統,則它們可以提供高可用性,增強的效能,精簡配置,重複資料刪除和壓縮。

在許多情況下,docker可以在這些儲存系統之上工作,但docker並沒有與它們緊密整合。

每個docker儲存驅動程式都基於linux檔案系統或捲管理器。

請務必遵循在共享儲存系統之上執行儲存驅動程式(檔案系統或捲管理器)的現有最佳實踐。

例如,如果在共享儲存系統之上使用zfs儲存驅動程式,請確保遵循在該特定共享儲存系統之上操作zfs檔案系統的最佳實踐。

對於某些使用者而言,穩定性比效能更重要。

雖然docker認為這裡提到的所有儲存驅動程式都是穩定的,但有些更新,並且仍在積極開發中。

一般而言,

aufsoverlay,並且 

是具有最高穩定性的選擇。

選擇您的組織可以輕鬆維護的儲存驅動程式。

如果是這樣,

司機可能是最好的選擇。

您可以在不同的儲存驅動程式上執行自己的工作負載時測試docker的效能。

確保使用等效的硬體和工作負載來匹配生產條件,以便您可以看到哪個儲存驅動程式提供了最佳的整體效能。

每個儲存驅動程式的詳細文件詳細說明了使用給定儲存驅動程式的所有設定步驟。

要檢視docker當前使用的儲存驅動程式,請使用docker info並查詢該storage driver行:

要更改儲存驅動程式,請參閱新儲存驅動程式的特定說明。

某些驅動程式需要其他配置,包括配置docker主機上的物理或邏輯磁碟。

重要說明:更改儲存驅動程式時,任何現有映象和容器都將無法訪問。

這是因為新儲存驅動程式無法使用它們的圖層。

如果還原更改,則可以再次訪問舊影象和容器,但是您使用新驅動程式提取或建立的任何內容都將無法訪問。

從零開始學Docker

我這邊先隨便寫,後期再做總結!docker官網 1.什麼是docker?作用是什麼?可以去官網看,也可以找相關的翻譯。推薦docker中文網,docker是乙個開源的軟體部署解決方案 docker也是輕量級的應用容器框架 docker可以打包 發布 執行任何的應用。2.docker介紹 docker...

從零開始學SQLSERVER 儲存過程(基礎用法)

儲存過程作為乙個高階內容,學習起來有點難度,但是如果掌握了,可以開啟你使用sqlserver的新世界。衝衝衝 儲存過程是用於完成特定功能的sql語句集合,一次編譯後永久都可以呼叫。有點難懂?那我簡單來說一下,儲存過程就是由多個sql語句組成的,執行乙個儲存過程就相當於執行多條sql語句。儲存過程的使...

Docker 從零開始製作基礎映象 centos

這裡有個統計,docker 官方和個人發布的映象由於版本等各種原因,漏洞較多,那我們如何自己從頭開始做個定製的映象呢?對,找官方文件 這裡說明的很清楚了 試驗如下 在centos7 機器上做 centos映象 直接參考這個指令碼 mkimage yum.sh y etc yum.conf cento...