MangoDisk 標誌

目前的瀏覽器版本過舊

MangoDisk 網站需要較新的瀏覽器才能正確顯示。請升級 Microsoft Edge,或使用其他現代瀏覽器開啟。

你仍然可以直接下載 MangoDisk:

升級 Microsoft Edge

Docker 占用太多磁碟空間:清理建置快取,保留映像檔與資料磁碟區

用 MangoDisk 查看 Docker 建置快取的預估大小,在保留映像檔、容器與資料磁碟區的前提下清理未使用快取,並了解重新建置與磁碟空間回收的差別。

發布於 2026/10/09作者: Harry
橘色刷子掃走 Docker 藍色鯨魚旁的灰色建置快取方塊,映像檔、容器與資料磁碟區則保留完整

如果 Docker 的空間主要被建置快取占用,可以先清理未使用的快取,保留映像檔、容器、網路與資料磁碟區。 Docker 的 builder prune 就是針對建置快取的清理命令。不過,清理後下次建置可能需要重新下載相依套件或產生資料;「目前未使用」不代表「以後用不到」。Docker 建置快取清理說明

想先查看這部分占用,再決定是否清理,可以用 MangoDisk 的深度清理。它透過本機預設的 Docker context 讀取快取資訊,在介面中顯示預估大小;由你選擇是否執行,再交給 Docker 官方命令清理。

用 MangoDisk 查看 Docker 建置快取

Docker 的命令列本來就能查看與清理快取。MangoDisk 將這兩步整合到圖形介面,讓你先確認預估大小與清理影響,再決定是否勾選,不必記住各種 prune 命令的參數與範圍。

MangoDisk Windows 繁體中文版深度清理介面,可查看清理分類與預估大小

上圖為深度清理介面示例,並非下文 Docker 檢查的截圖;實際項目依本機掃描結果而定。

開啟深度清理,執行標準掃描,在容器快取中查看 Docker 建置快取。這個項目預設不勾選,單純掃描不會刪除快取。

準備清理時:

  1. 等正在執行的建置工作結束,保持 Docker 服務運作;使用 Docker Desktop 時,不要先結束它。
  2. 查看建置快取的預估大小,確認可以接受之後重新建置或下載資料的成本。
  3. 選擇全部取消選取,只勾選 Docker 建置快取,核對清理計畫後再確認執行。

這個項目會保留映像檔、容器、網路與資料磁碟區,但無法依個別專案選取快取。 目前的實作會執行 docker --context default builder prune --all --force,清理預設 context 下由 Docker 判定為未使用的建置快取。不能把它當成「只清某個舊專案」的功能。MangoDisk v1.1.7 的 Docker 清理實作

context 是 Docker 用來設定服務連線目標的組態。MangoDisk 固定使用 default,不會跟著目前選取的其他 context 切換;如果這個目標無法連線,就無法正常預覽。其他本機 context、自訂 Buildx builder 與遠端服務需要另外確認,不在這個項目的涵蓋範圍內。Docker context 說明

Docker 必須已安裝且服務可連線,才能提供快取資訊並執行清理。沒有掃描結果時,先確認服務狀態;不能因此認定 Docker 沒有占用磁碟空間。

預估大小不是實際釋放的空間

MangoDisk 預覽時,只加總 Docker 標記為未使用、未共用且大小不為零的建置快取記錄。共用資料不列入這項估算,也不能直接把所有映像檔與快取的顯示大小相加。

2026 年 10 月 9 日,在 macOS 15.7.7 上使用 Docker 29.1.3 進行唯讀檢查,取得 134 筆建置快取記錄。其中 56 筆符合上述條件,依 Docker 顯示大小加總約 11.6 GB。這是清理前的近似估算,沒有執行刪除,也不表示已釋放 11.6 GB。

預覽數字用來判斷是否值得清理,不是一份能逐筆勾選的快取清單。實際執行時,Docker 會依 builder prune --all 的規則決定可移除的未使用快取;主機最終增加多少可用空間,仍要在清理後確認。

分清快取與需要保留的資料

建置快取保存可重複利用的步驟結果與相關資料,減少之後建置時的重複工作。專案、相依套件或建置方式改變,快取也會跟著變化;快取很大,不一定是 Docker 出了問題。Docker 建置快取說明

內容用途本文的處理方式
建置快取重複利用建置步驟與相關資料能接受重新建置成本時,視需要清理未使用的部分
映像檔提供建立容器所需的執行環境保留,不隨建置快取一起清理
容器執行中或已停止的應用程式實例,可能仍有需要的資料保留;停止不等於可以刪除
資料磁碟區(volume)持續保存資料庫、上傳檔案等資料保留,不當成快取處理

資料磁碟區的生命週期獨立於容器。即使目前沒有容器使用它,裡面也可能存著需要保留的資料,不能只憑「未使用」就刪除。Docker 磁碟區說明

建置快取是否值得留下,也取決於接下來的工作。如果近期要反覆建置同一個專案,或需要離線作業,通常保留快取更合適。磁碟空間確實不足,而且可以重新取得相依套件時,再考慮清理。

用官方命令查看與清理

習慣命令列的使用者可以直接檢查同一個目標。以下命令明確指定 default,與前述 MangoDisk 項目一致。先查看連線設定,確認目標是本機 Docker 服務:

docker context ls
docker context inspect default

確認目標後,查看空間占用,必要時再展開詳細資訊。這些命令只會查詢,不會刪除:

docker --context default system df
docker --context default system df --verbose

比較映像檔、容器、資料磁碟區與建置快取的占用。如果資料磁碟區才是最大的一部分,清理建置快取無法解決主要問題,應先確認其中存放的資料。Docker 空間占用命令說明

確認可以移除這個目標下所有未使用的建置快取,並接受重新建置的成本後,再執行:

docker --context default builder prune --all

--all 會處理所有未使用的建置快取,不只懸空快取(dangling cache)。上面的手動命令沒有加 --force,會保留 Docker 本身的確認提示。清理不經過資源回收筒或垃圾桶,無法從其中還原快取;之後建置時需要重新產生相關資料。Docker builder prune 參數說明

MangoDisk 在應用程式中確認清理後使用 --force 執行,因此不會另外跳出終端機提示。目前這個項目沒有依快取時間篩選或設定保留容量的選項;需要這些控制時,可參考 Docker 官方參數另行處理。

只想清建置快取時,不需要改用 system prune。它還會處理已停止的容器、未使用的網路與映像檔;加上 --volumes 後,也會涉及未使用的匿名磁碟區。兩者範圍不同,不能直接替換。Docker system prune 範圍說明

清理後確認快取與磁碟占用

完成後,在相同 context 下再次查看:

docker --context default system df

先比較建置快取的大小,再查看作業系統的可用磁碟空間。之後再次建置,Docker 可能重新執行部分步驟、下載相依套件並產生快取,這是正常行為。不必為了讓數字一直很小,每次建置完就清空。

使用 Mac 版 Docker Desktop 時,還要分清磁碟映像檔的容量上限與實際占用。Docker Desktop 將 Linux 容器與映像檔存放在磁碟映像檔中,有些工具顯示的是最大容量;可到 Settings → Resources → Advanced 查看實際占用與容量上限。Docker Desktop Mac 儲存空間說明

不要把 Docker.raw 當成一般快取檔案刪除,也不要只為了縮小顯示數字就降低磁碟映像檔的容量上限。Docker 官方說明,降低上限會刪除現有磁碟映像檔,造成容器與映像檔遺失。這已超出本文只清建置快取的範圍。

建置快取已經不大,磁碟卻仍然很滿時,可以用 MangoDisk 的磁碟空間分析找出其他大型資料夾。占用可能來自原始素材、舊專案的相依套件,或其他工具的建置產物,應依各自用途處理,不必反覆清同一項 Docker 快取。

其他開發工具可參考 npm 快取與 node_modules 的差別、Cargo cache 與 target 資料夾的差別,或從開發者磁碟清理指南繼續排查。

本文產品行為以 MangoDisk v1.1.7 為準。執行前可閱讀安全清理指南,確認清理計畫與需要保留的資料。

下載 MangoDisk,先查看 Docker 建置快取的預估大小,再決定是否值得清理。映像檔、容器與資料磁碟區繼續保留,是否接受下次建置的成本,由你判斷。