docker的文件系統Overlay2

OverlayFS(Overlay2)文件系統深度解析

Overlay2 是 Docker 默認使用的聯合文件系統(Union Filesystem),用于管理容器鏡像的分層存儲和容器運行時文件系統的合并。它基于 Linux 內核的?OverlayFS?技術,是早期?aufs?和?overlay?的改進版本。


1. OverlayFS 的核心概念

OverlayFS 通過堆疊多層目錄來實現文件系統的聯合掛載,主要分為:

  • Lower Dir(下層,只讀):通常是鏡像層(Image Layers)。

  • Upper Dir(上層,可寫):容器運行時新增或修改的文件。

  • Work Dir(工作目錄):OverlayFS 內部用于準備文件的臨時目錄。

  • Merged Dir(合并視圖):最終呈現給容器的統一文件系統。


2. Overlay2 在 Docker 中的工作方式

Docker 鏡像采用分層存儲,每一層都是一個只讀文件系統(Lower Dir)。當啟動容器時,Overlay2 會:

  1. 鏡像層(Lower Dir):所有鏡像層按順序堆疊(如?base-image → apt-get install → copy files)。

  2. 容器層(Upper Dir):在鏡像層之上創建一個可寫層,存儲容器運行時的修改。

  3. 合并視圖(Merged):將只讀層和可寫層合并,形成容器的完整文件系統。


3. 查看 Docker 的 Overlay2 存儲結構

Docker 的 Overlay2 數據默認存儲在?/var/lib/docker/overlay2/(如果你的示例中掛載在?/mnt/newdisk/docker/overlay2,說明 Docker 數據目錄被遷移到了該磁盤)。

關鍵目錄說明

/var/lib/docker/overlay2/
├── <layer-id>           # 每個鏡像或容器層對應一個目錄
│   ├── diff             # 該層的實際文件內容(相當于 Lower Dir)
│   ├── link             # 短標識符(用于避免長ID路徑問題)
│   ├── lower            # 指向父層的引用(如 `l/ABC123`)
│   └── work             # OverlayFS 內部工作目錄
├── l/                   # 短鏈接目錄(優化路徑訪問)
└── <container-id>       # 容器運行時目錄├── merged/          # 合并后的文件系統(容器看到的視圖)├── upper/           # 可寫層(Upper Dir)└── work/            # OverlayFS 工作目錄

4. 文件讀寫規則

操作類型行為
讀取文件從最上層 Lower Dir 開始查找,直到找到該文件。
修改文件文件若在 Lower Dir(只讀),則先復制到 Upper Dir(寫時復制,CoW),再修改。
刪除文件在 Upper Dir 創建?whiteout?文件(如?.wh.filename),隱藏 Lower Dir 中的文件。
新建文件直接寫入 Upper Dir。

5.??df -h?顯示多個 Overlay 掛載

overlay 334G 159G 160G 50% /mnt/newdisk/docker/overlay2/.../merged

  • 每個?merged?目錄對應一個正在運行的容器的合并視圖。

  • 由于多個容器可能共享相同的鏡像層(Lower Dir),但每個容器有自己的 Upper Dir,因此?df?可能會重復統計共享層(實際磁盤占用并非簡單相加)。


6. Overlay2 的優點

  1. 高效分層存儲:多個容器共享相同的基礎鏡像層,節省空間。

  2. 寫時復制(CoW):只有修改文件時才復制,減少磁盤 I/O。

  3. 性能較好:相比?aufs?和?devicemapper,Overlay2 是 Docker 推薦的存儲驅動。


7. 潛在問題與注意事項

(1)磁盤空間顯示不準確

  • df?可能會重復計算共享層,實際占用比顯示的要小。

  • 用?docker system df?查看 Docker 的真實磁盤使用情況:

    docker system df

    輸出示例:

    TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
    Images          5         3         2.1GB     800MB (38%)
    Containers      3         1         300MB     300MB (100%)
    Local Volumes   2         1         500MB     500MB (100%)

(2)清理無用數據

  • 刪除無用鏡像、容器和卷:

    docker system prune -a      # 清理所有未使用的對象
    docker volume prune         # 清理未使用的卷

(3)大文件導致磁盤占滿

  • 容器日志或應用程序寫入的大文件可能堆積在 Upper Dir。

  • 檢查容器日志大小:

    docker logs <container-id> --tail 100  # 查看日志
  • 限制日志大小(在?docker run?時添加?--log-opt max-size=10m)。


8. 進階:手動調試 Overlay2

如果想直接查看某個容器的文件系統:

# 找到容器的 Merged Dir(需 root 權限)
docker inspect <container-id> | grep MergedDir# 進入合并后的文件系統
ls /var/lib/docker/overlay2/<container-id>/merged

總結

  • Overlay2 是 Docker 的分層存儲引擎,通過聯合掛載實現高效的文件管理。

  • Lower Dir(鏡像層)只讀Upper Dir(容器層)可寫merged?是最終視圖。

  • df -h?可能顯示重復統計,建議用?docker system df?查看真實占用。

  • 定期清理無用鏡像和日志,避免磁盤占滿。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/74444.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/74444.shtml
英文地址,請注明出處:http://en.pswp.cn/web/74444.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

WebRTC技術簡介及應用場景

寫在前面 本文是參考稀土掘金的文章,整理得出,版權歸原作者所有! 參考鏈接:https://juejin.cn/book/7168418382318927880/section/7171376753263247396 WebRTC&#xff08;Web Real-Time Communication&#xff09; 是一項開源技術&#xff0c;允許瀏覽器和移動應用直接進行…

Windows 圖形顯示驅動開發-WDDM 2.1 功能(四)

驅動程序版本控制 圖形適配器或芯片集的驅動程序 DLL 和 SYS 文件必須具有正確格式的文件版本。 驅動程序信息文件 (.inf)、內核模式驅動程序 (.sys) 和用戶模式驅動程序 (.dll) 文件的版本信息必須一致。 此外&#xff0c;.inf 的 [SignatureAttributes] 部分中標識為 PETru…

什么是 StarRocks?核心優勢與適用場景解析

在數據量持續爆發的時代&#xff0c;企業對實時分析的需求日益迫切。例如&#xff0c;電商大促期間的交易監控、廣告投放效果的即時反饋等場景&#xff0c;均要求毫秒級的響應速度。然而&#xff0c;傳統工具如 Hadoop、Hive 等存在明顯短板&#xff1a;復雜查詢性能不足、資源…

Java基礎 4.3

1.對象機制練習 public class Object03 {public static void main(String[] args) {Person a new Person();a.age 10;a.name "小明";Person b;b a;System.out.println(b.name);//小明b.age 200;b null;System.out.println(a.age);//200System.out.println(b.a…

視頻設備軌跡回放平臺EasyCVR綜合智能化,搭建運動場體育賽事直播方案

一、背景 隨著5G技術的發展&#xff0c;體育賽事直播迎來了新的高峰。無論是NBA、西甲、英超、德甲、意甲、中超還是CBA等熱門賽事&#xff0c;都是值得記錄和回放的精彩瞬間。對于體育迷來說&#xff0c;選擇觀看的平臺眾多&#xff0c;但是作為運營者&#xff0c;搭建一套體…

搬磚--貪心+排序的背包

a在上面b在下面->a.v-M-b.m>b.v-M-a.m->剩余率大 所以我先遍歷a&#xff0c;讓a在上面 這就是要考慮貪心排序的01背包 因為它有放的限制條件 #include<bits/stdc.h> using namespace std; #define N 100011 typedef long long ll; typedef pair<ll,int>…

《2024年全球DDoS攻擊態勢分析》

從攻擊態勢來看&#xff0c;2024年DDoS攻擊頻次繼續呈增長趨勢&#xff0c;2024年同步增加1.3倍&#xff1b;超大規模攻擊激增&#xff0c;超800Gbps同比增長3.1倍&#xff0c;累計高達771次&#xff0c;且互聯網史上最大帶寬和最大包速率攻擊均被刷新&#xff1b;瞬時泛洪攻擊…

數據分析參考架構詳解

1.數倉方法論 2. 數倉建模參考架構 3.大數據參考架構 4.數據分析參考架構

領馭科技:以微軟Azure Speech技術為核心,驅動翻譯耳機新時代

在全球化的今天&#xff0c;語言不再是溝通的障礙。領馭科技&#xff0c;作為微軟的核心合作伙伴&#xff0c;正引領翻譯耳機行業進入一個全新的發展階段。以時空壺與貿人為例&#xff0c;這兩家公司的翻譯耳機產品憑借其內置的微軟Azure Speech人工智能語音技術&#xff0c;為…

seaweedfs分布式文件系統

seaweedfs https://github.com/seaweedfs/seaweedfs.git go mod tidy go -o bin ./… seaweed占不支持smb服務&#xff0c;只能用fuse的方式mount到本地文件系統 weed master 默認端口&#xff1a;9333&#xff0c;支持瀏覽器訪問 weed volume 默認端口&#xff1a;8080 weed …

說清楚單元測試

在團隊中推行單元測試的時候,總是會被成員問一些問題: 這種測試無法測試數據庫的SQL(或者是ORM)是否執行正確?這種測試好像沒什么作用?關聯的對象要怎么處理呢?…借由本篇,來全面看一看單元測試。 單元測試是軟件開發中一種重要的測試方法,其核心目的是驗證代碼的最小…

服務器磁盤io性能監控和優化

服務器磁盤io性能監控和優化 全文-服務器磁盤io性能監控和優化 全文大綱 磁盤IO性能評價指標 IOPS&#xff1a;每秒IO請求次數&#xff0c;包括讀和寫吞吐量&#xff1a;每秒IO流量&#xff0c;包括讀和寫 磁盤IO性能監控工具 iostat&#xff1a;監控各磁盤IO性能&#xff0c…

辦公設備管理系統(springboot+ssm+jsp+maven)

基于springboot的辦公設備管理系統(springbootssmjspmaven) 系統功能主要有&#xff1a; 歡迎頁賬號管理 管理員賬號管理系統賬號添加密碼修改 普通管理員管理 用戶管理用戶添加用戶查詢 資產類型管理資產信息管理資產檔案管理資產報表

【STM32設計】基于STM32的智能門禁管理系統(指紋+密碼+刷卡+蜂鳴器報警)(代碼+資料+論文)

本課題為基于單片機的智能門禁系統&#xff0c;整個系統由AS608指紋識別模塊&#xff0c;矩陣鍵盤&#xff0c;STM32F103單片機&#xff0c;OLED液晶&#xff0c;RFID識別模塊&#xff0c;繼電器&#xff0c;蜂鳴器等構成&#xff0c;在使用時&#xff0c;用戶可以錄入新的指紋…

Java學習總結-io流-字節流

io的體系&#xff1a; FlieInputStream(文件字節輸入流) 是什么&#xff1a;磁盤以字節的形式輸入到內存中。 由于不同格式編碼長度&#xff0c;每次讀取一個或幾個字節&#xff0c;都有可能出現亂碼。 所以官方提供了&#xff0c;一次性讀入全部字節&#xff0c;以數組的形式…

玩轉JUC - 如何優雅的異步處理任務

1、概述 前面我們學習了并發包中的一些核心的基礎類&#xff0c;包括原子類、Lock 、以及線程間通信的一些工具類&#xff0c;相信你已經能夠正確的處理線程同步的問題了&#xff0c;今天我們繼續學習并發包下的工具類&#xff0c;我們本次主要學習線程池和異步計算框架相關的內…

MINIQMT學習課程Day2

如何和聚寬進行綁定交易 目前市場上的方式主要為以下三種方案&#xff1a; 1.聚寬和一創直接綁定&#xff08;現在已經被廢除&#xff09; 2.通過蔣老師所提出的redis方案&#xff0c;進行交易 3.李興果的&#xff0c;網頁發送到服務器數據庫&#xff0c;然后本地讀取數據進行…

【AI視頻】度加視頻測試

目標 前邊&#xff0c;大藏經用AI翻譯成功了&#xff0c;語音也生成了&#xff0c;就想著生成視頻了&#xff0c;然后就發現了這個寶藏工具。 先說結果&#xff1a;速度不是很快&#xff0c;出錯了&#xff0c;提示也不是很清晰&#xff0c;雖然不順利&#xff0c;但過程還是…

SAP CEO引領云端與AI轉型

在現任首席執行官克里斯蒂安克萊因&#xff08;Christian Klein&#xff09;的領導下&#xff0c;德國軟件巨頭 SAP 正在經歷一場深刻的數字化轉型&#xff0c;重點是向云計算和人工智能方向發展。他提出的戰略核心是“RISE with SAP”計劃&#xff0c;旨在幫助客戶從傳統本地部…

《系統分析師-基礎篇-1-6章總結》

第1章 緒論 系統分析師角色 職責&#xff1a;需求分析、系統設計、項目管理、技術協調。 能力要求&#xff1a;技術深度&#xff08;架構設計、開發方法&#xff09; 業務理解&#xff08;企業流程、行業知識&#xff09; 溝通能力。 系統開發生命周期 傳統模型&#xf…