最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Windows?Docker?Desktop磁盤空間清理步驟完全指南

 更新時間:2026年04月08日 09:42:47   作者:REDcker  
Windows?Docker?Desktop在長時間使用后,會由于鏡像、容器、緩存等文件累積,導(dǎo)致磁盤空間占用過大,這篇文章主要介紹了Windows?Docker?Desktop磁盤空間清理的相關(guān)資料,需要的朋友可以參考下

問題描述

在 Windows 上運行 Docker Desktop 時,可能會發(fā)現(xiàn) docker_data.vhdx 文件占用了大量磁盤空間(例如接近 400GB)。這個文件是 Docker Desktop 使用 WSL 2 后端時,用于存儲所有 Docker 數(shù)據(jù)(鏡像、容器、卷、構(gòu)建緩存等)的虛擬硬盤文件。

問題根源:WSL 2 虛擬硬盤

當(dāng)您在 Windows 上啟用 WSL 2 功能并使用 Docker Desktop 時,它會創(chuàng)建一個或多個 Linux 發(fā)行版(如 docker-desktop, docker-desktop-data)在后臺運行。您的容器及其所有相關(guān)數(shù)據(jù)(包括層疊的文件系統(tǒng)、寫入的數(shù)據(jù)等)最終都存儲在這個名為 docker_data.vhdx 的虛擬硬盤中。

重要特性:這個文件會動態(tài)增長以適應(yīng)您的數(shù)據(jù),但默認(rèn)情況下,即使您刪除了 Docker 內(nèi)部的文件,它也不會自動縮小。這就是它變得如此巨大的原因。

解決方案(從推薦到高級)

請嚴(yán)格按照順序嘗試以下方法,并在操作前確保重要數(shù)據(jù)已備份。

方案一:使用 Docker Desktop 自帶清理(最簡單、最安全)

這是首選方法,因為它完全通過 Docker 的管理界面進行,最不容易出錯。

  1. 打開 Docker Desktop。
  2. 點擊右上角的 設(shè)置(Settings) 齒輪圖標(biāo)。
  3. 選擇左側(cè)的 Resources -> Advanced。
    • 這里您可以調(diào)整磁盤映像的最大大小,但我們現(xiàn)在不調(diào)整,只是查看。記下當(dāng)前設(shè)置。
  4. 選擇左側(cè)的 Troubleshoot(或在某些版本中是 Diagnose & Feedback)。
  5. 您會看到幾個按鈕,點擊 Clean / Purge data。
    • 警告:這會刪除所有 Docker 數(shù)據(jù),包括所有鏡像、容器、卷和網(wǎng)絡(luò)。您的容器和數(shù)據(jù)也會被銷毀!請確保您已從容器中 docker cp 出所有重要文件,或者這些文件已通過卷掛載到了 Windows 主機上。

更溫和的清理(推薦先試這個):

直接在 Docker Desktop 的 Dashboard 頁面,您可以看到所有正在運行和已停止的容器、本地鏡像、卷和構(gòu)建緩存。您可以手動選擇不需要的鏡像、容器(已退出的)和卷,然后逐個刪除。

方案二:使用 Docker 命令進行精細清理(推薦用于日常維護)

這個方法可以更有選擇性地清理,避免丟失所有數(shù)據(jù)。

  1. 打開 PowerShell 或 CMD(以管理員身份運行并非必須,但有時有權(quán)限更好)。

  2. 列出并刪除所有已停止的容器

    docker container prune

    系統(tǒng)會詢問是否繼續(xù),輸入 y

  3. 刪除所有未被使用的鏡像(懸空鏡像):

    docker image prune
  4. 刪除所有未被使用的鏡像(包括那些沒有標(biāo)簽的,更徹底):

    docker image prune -a

    注意:這可能會刪除您之后可能想重用的基礎(chǔ)鏡像。

  5. 刪除所有未被使用的卷極其重要:卷通常用于存儲數(shù)據(jù)庫數(shù)據(jù)等持久化信息,請確認(rèn)卷中的數(shù)據(jù)已無用或已備份):

    docker volume prune
  6. 一鍵清理所有未使用的對象(容器、網(wǎng)絡(luò)、鏡像(懸空)、構(gòu)建緩存):

    docker system prune
  7. 最徹底的清理(包括所有未被使用的鏡像,不僅僅是懸空鏡像):

    docker system prune -a --volumes

    再次強調(diào)--volumes 參數(shù)會刪除所有未被容器引用的卷,使用前請三思!

完成以上命令后,Docker 內(nèi)部的數(shù)據(jù)已經(jīng)減少了,但 docker_data.vhdx 文件的大小很可能還沒有變化。

方案三:壓縮 VHDX 文件(核心步驟?。?/h3>

這是讓虛擬硬盤文件實際變小的關(guān)鍵。我們需要在 WSL 層面進行操作。

  1. 關(guān)閉 Docker Desktop:右鍵系統(tǒng)托盤區(qū)的 Docker 圖標(biāo),選擇 Quit Docker Desktop。確保它完全退出。

  2. 列出并關(guān)閉所有 WSL 發(fā)行版
    打開 PowerShell 或 CMD,執(zhí)行:

    wsl --list --verbose
    # 或簡寫
    wsl -l -v

    您會看到類似這樣的輸出:

    NAME                   STATE           VERSION
    * Ubuntu                 Running         2
      docker-desktop         Stopped         2
      docker-desktop-data    Stopped         2
  3. 強制終止所有 WSL 實例
    為了確保萬無一失,運行:

    wsl --terminate Ubuntu
    wsl --terminate docker-desktop
    wsl --terminate docker-desktop-data

    再次運行 wsl -l -v,確保所有狀態(tài)都變?yōu)?Stopped。

  4. 優(yōu)化(壓縮)VHDX 文件
    現(xiàn)在針對存儲數(shù)據(jù)的那個發(fā)行版(docker-desktop-data)進行操作:

    # 請將路徑替換為您的實際路徑,通常就在這里
    # 注意:這是一個很長的單行命令
    optimize-vhd -Path "C:\Users\<YourUserName>\AppData\Local\Docker\wsl\data\ext4.vhdx" -Mode full

    如何找到路徑?

    • 默認(rèn)路徑通常是 C:\Users\<你的用戶名>\AppData\Local\Docker\wsl\data\ext4.vhdx。
    • 如果找不到,可以在文件資源管理器的地址欄輸入 %LOCALAPPDATA%\Docker\wsl\data 直接進入。
    • 您也可以直接在 PowerShell 中運行(如果優(yōu)化了錯誤的文件也沒關(guān)系,只是沒效果):
      optimize-vhd -Path "$env:LOCALAPPDATA\Docker\wsl\data\ext4.vhdx" -Mode full
    • -Mode full 是最徹底的壓縮模式,耗時也最長。
  5. 等待完成并重啟 Docker
    命令執(zhí)行成功后,您會發(fā)現(xiàn) ext4.vhdx 文件的大小顯著減小了?,F(xiàn)在重新啟動 Docker Desktop,它應(yīng)該會正常啟動。

關(guān)于 WSL 發(fā)行版的說明

WSL 發(fā)行版類型

當(dāng)您運行 wsl -l -v 時,可能會看到類似以下輸出:

NAME                   STATE           VERSION
* Ubuntu                 Stopped         2
  Ubuntu2                Stopped         2
  docker-desktop         Stopped         2
  docker-desktop-data   Stopped         2

1.Ubuntu和Ubuntu2

  • 它們是什么?
    這些是您自己手動安裝的獨立的 Linux 發(fā)行版子系統(tǒng)。您可能在 Microsoft Store 里搜索并安裝了 “Ubuntu” 或某個特定版本(如 Ubuntu 20.04 LTS),或者通過 wsl --install -d Ubuntu 命令安裝的。它們與 Docker Desktop 是完全獨立的兩個程序。

  • 刪除它們對 Docker Desktop 有影響嗎?
    完全沒有影響。 Docker Desktop 的運行不依賴于您手動安裝的這些 WSL 發(fā)行版。它們只是在您的電腦上共存的另一個 Linux 環(huán)境。

  • 我能刪除它們嗎?
    可以,而且如果您不再需要在這些獨立環(huán)境中工作,強烈建議刪除它們以節(jié)省磁盤空間。
    刪除方法:

    # 注銷(刪除)指定的發(fā)行版
    wsl --unregister Ubuntu
    wsl --unregister Ubuntu2

    警告:執(zhí)行此命令會永久刪除該發(fā)行版內(nèi)的所有文件和數(shù)據(jù),且無法恢復(fù)。請確保您沒有重要的文件在里面。

2.docker-desktop和docker-desktop-data

  • 它們是什么?(這是重點?。?/strong>
    這兩個是 Docker Desktop for Windows 為了使用 WSL 2 后端而自動創(chuàng)建和管理的特殊發(fā)行版。

    • docker-desktop:包含 Docker 引擎(守護進程 dockerd)和與 WSL 集成相關(guān)的組件。它負責(zé)運行 Docker 服務(wù)本身。
    • docker-desktop-data這就是您之前看到的 400GB docker_data.vhdx 文件的宿主! 它專門用于存儲所有的 Docker 鏡像、容器層、卷(Volumes)和網(wǎng)絡(luò)配置等持久化數(shù)據(jù)。您的容器及其所有讀寫操作,最終都保存在這個發(fā)行版的空間里。
  • 刪除它們對 Docker Desktop 有影響嗎?
    有毀滅性的影響!

    • 刪除 docker-desktop:Docker Desktop 將無法啟動,因為運行它的核心服務(wù)沒了。
    • 刪除 docker-desktop-data您的所有 Docker 數(shù)據(jù)(所有鏡像、所有容器、所有卷里的數(shù)據(jù))將會被永久刪除! 這比在 Docker 內(nèi)部執(zhí)行 docker system prune -a --volumes 要徹底得多,是直接格式化整個數(shù)據(jù)倉庫。您的 400GB 文件會消失,但代價是里面的所有內(nèi)容都沒了。
  • 我能刪除它們嗎?
    絕對不要手動刪除它們! 您只能通過 Docker Desktop 的設(shè)置或我們之前討論的 Purge Data 功能來重置它們,這本質(zhì)上也是在受控環(huán)境下刪除和重建它們。

WSL 發(fā)行版刪除影響總結(jié)

WSL 發(fā)行版名稱來源作用是否可以刪除?刪除后果
Ubuntu, Ubuntu2用戶手動安裝獨立的 Linux 工作環(huán)境可以僅丟失該獨立Linux系統(tǒng)內(nèi)的個人文件
docker-desktopDocker Desktop 自動創(chuàng)建運行 Docker 引擎的核心服務(wù)絕對不可以Docker Desktop 無法啟動
docker-desktop-dataDocker Desktop 自動創(chuàng)建存儲所有 Docker 數(shù)據(jù)的虛擬硬盤絕對不可以所有 Docker 鏡像、容器、卷數(shù)據(jù)永久丟失

清理步驟建議總結(jié)

  1. 第一步:常規(guī)清理

    • 使用 Docker Desktop 的 Dashboard 手動刪除不需要的容器、鏡像和卷
    • 或使用命令行:docker system prune(溫和)或 docker system prune -a(徹底)
  2. 第二步:關(guān)閉 Docker 和 WSL

    • 完全退出 Docker Desktop
    • 使用 wsl --terminate 確保所有 WSL 實例都已停止
  3. 第三步:壓縮 VHDX 文件

    • 使用 optimize-vhd 命令壓縮 docker-desktop-data 的虛擬硬盤文件
    • 這是讓文件實際變小的關(guān)鍵步驟
  4. 第四步:重啟 Docker Desktop

    • 驗證 Docker 是否正常工作
    • 檢查磁盤空間是否已釋放

未來預(yù)防措施

  1. 定期清理:養(yǎng)成定期使用 docker system prune -a(或更溫和的命令)的習(xí)慣。

  2. 使用 .dockerignore:在構(gòu)建鏡像時,使用此文件排除不必要的文件和目錄(如 node_modules, .git),可以減小鏡像體積。

  3. 多階段構(gòu)建:在 Dockerfile 中使用多階段構(gòu)建,只將最終需要的文件復(fù)制到最終鏡像中。

  4. 合理使用卷:將動態(tài)數(shù)據(jù)(如數(shù)據(jù)庫文件)放在卷中,便于管理和備份,也避免在容器內(nèi)產(chǎn)生大量垃圾文件。

  5. 考慮數(shù)據(jù)備份策略:對于重要的容器數(shù)據(jù),定期將其從容器中拷出或備份卷。

重要提醒

  • 在執(zhí)行任何 sudo rm -rfwsl --unregister 命令前,請務(wù)必再三確認(rèn)路徑是否正確,刪除系統(tǒng)文件可能導(dǎo)致系統(tǒng)無法啟動。
  • 對于不確定的文件,可以先移動到備份位置(如 /tmp),觀察一段時間沒問題后再徹底刪除。
  • 在執(zhí)行 docker system prune -a --volumes 前,請確保重要數(shù)據(jù)已備份。
  • 絕對不要手動刪除 docker-desktop 和 docker-desktop-data 這兩個 WSL 發(fā)行版!

常用清理命令

根據(jù)docker system df的結(jié)果,選擇合適的命令進行清理。

命令作用備注
docker container prune刪除所有已停止的容器。相對安全。
docker image prune刪除所有"懸空鏡像"(即沒有標(biāo)簽,且沒有被任何容器引用的鏡像層)。相對安全。
docker image prune -a刪除所有未被容器引用的鏡像。較為激進,可能需重新拉取基礎(chǔ)鏡像,請謹(jǐn)慎使用。
docker volume prune刪除所有未被容器引用的卷。卷中的數(shù)據(jù)是持久化的,被刪除后可能丟失重要數(shù)據(jù),操作前務(wù)必確認(rèn)卷已無用或已備份
docker builder prune清理構(gòu)建緩存。對于有頻繁鏡像構(gòu)建需求的環(huán)境,可考慮保留部分緩存。
docker system prune -a --volumes執(zhí)行最徹底的清理,會刪除所有未使用的容器、網(wǎng)絡(luò)、鏡像和卷。這是核武器級別的命令,請再三確認(rèn)所有重要數(shù)據(jù)都已妥善處理后再使用

總結(jié) 

到此這篇關(guān)于Windows Docker Desktop磁盤空間清理的文章就介紹到這了,更多相關(guān)Windows Docker Desktop磁盤空間清理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Docker 限制容器對內(nèi)存的使用詳解

    Docker 限制容器對內(nèi)存的使用詳解

    這篇文章主要介紹了Docker 限制容器對內(nèi)存的使用詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 搭建docker-nginx服務(wù),訪問nginx報錯403問題及解決

    搭建docker-nginx服務(wù),訪問nginx報錯403問題及解決

    這篇文章主要介紹了搭建docker-nginx服務(wù),訪問nginx報錯403問題及解決,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • docker之創(chuàng)建MariaDB鏡像的方法

    docker之創(chuàng)建MariaDB鏡像的方法

    這篇文章主要介紹了docker之創(chuàng)建MariaDB鏡像,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • CentOS7 Nvidia Docker環(huán)境搭建

    CentOS7 Nvidia Docker環(huán)境搭建

    本篇文章主要介紹了CentOS7 Nvidia Docker環(huán)境搭建,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • docker-compose實現(xiàn)wireshark對linux主機進行抓包

    docker-compose實現(xiàn)wireshark對linux主機進行抓包

    這篇文章主要為大家介紹了docker-compose實現(xiàn)wireshark對linux主機進行抓包腳本示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-12-12
  • Docker?link實現(xiàn)容器互聯(lián)的方式

    Docker?link實現(xiàn)容器互聯(lián)的方式

    通過link方式創(chuàng)建容器,然后我們可以使用被link容器的別名進行訪問。本文重點給大家介紹Docker?link實現(xiàn)容器互聯(lián)的方式,感興趣的朋友一起看看吧
    2021-12-12
  • Docker容器訪問宿主機Ollama服務(wù)配置詳細操作步驟

    Docker容器訪問宿主機Ollama服務(wù)配置詳細操作步驟

    Ollama現(xiàn)在已經(jīng)支持Docker安裝,極大的簡化了服務(wù)器用戶部署難度,這篇文章主要介紹了Docker容器訪問宿主機Ollama服務(wù)配置詳細操作步驟,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-12-12
  • Docker入門安裝教程(小白篇)

    Docker入門安裝教程(小白篇)

    這篇文章主要介紹了Docker入門安裝教程(小白篇),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • docker啟動elasticsearch時內(nèi)存不足問題及解決方法

    docker啟動elasticsearch時內(nèi)存不足問題及解決方法

    這篇文章主要介紹了docker啟動elasticsearch時內(nèi)存不足問題,本文給大家分享安裝過程及解決方法,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Docker?安裝?EMQX鏡像的完整流程

    Docker?安裝?EMQX鏡像的完整流程

    本文介紹了通過Docker安裝和部署EMQX6.0.0的完整流程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2025-11-11

最新評論

翁源县| 上林县| 漳平市| 永昌县| 宾川县| 重庆市| 朝阳县| 深圳市| 卢龙县| 兴国县| 交口县| 永康市| 海阳市| 云浮市| 南乐县| 漯河市| 祁门县| 漳浦县| 含山县| 徐汇区| 泽库县| 江都市| 白水县| 左云县| 宣威市| 永顺县| 涿鹿县| 黑山县| 奉化市| 阳东县| 石屏县| 侯马市| 来安县| 新宁县| 蓬溪县| 西丰县| 温州市| 喀喇沁旗| 凉山| 辽阳市| 吴忠市|