5大熱門Docker System DF指令比較、用法及清理全攻略

Docker用耐咗,係咪發現磁碟空間無端端被食曬?2026年管理Docker儲存空間,識用「docker system df」指令絕對係關鍵第一步。呢個指令就好似Linux嘅df指令咁,專門用嚟顯示Docker daemon嘅磁碟使用情況,包括鏡像(Images)、容器(Containers)、數據卷(Volumes)同構建緩存(Build Cache)四大類別嘅佔用空間。本文為你詳細比較5大常用指令組合,例如基礎查詢「docker system df」、詳細模式「docker system df -v」、以及自定義格式「docker system df --format」等,幫你一眼睇清邊個Docker組件最食位。我哋仲會教你點樣根據df嘅結果,進行針對性清理,例如移除懸空鏡像或舊數據卷,等你可以釋放寶貴嘅硬碟空間,保持系統運行暢順。無論你係Docker新手定係有經驗嘅開發者,呢份全攻略都能助你成為Docker儲存空間管理高手。
docker system df - Docker

AboutDockerProfessional illustrations

Docker system df 指令詳解

好啦,各位IT兄弟姊妹,今次我哋就深入淺出,拆解下 Docker system df 呢個指令。喺2026年嘅今日,無論你係管理緊本地開發機定係成隊 伺服器雲端儲存,只要你有玩 Docker,就實會遇到一個頭痛問題:點解我部機嘅 硬碟空間 好似越嚟越少?無錯,就係因為 Docker 喺背後默默食緊你嘅 磁碟空間!每次 build 鏡像、run 容器、甚至係測試時產生嘅暫存檔,都會喺你嘅 硬碟 留低腳印。如果你唔定期做 清理,好快就會發現 磁碟使用情況 爆紅,到時連新 容器 都起唔到就大鑊。

咁點樣先知係邊度食晒啲位呢?就係靠 Docker system df 呢個 Docker System 命令 喇。佢就好似一個專為 Docker 而設嘅「磁碟空間分析儀」。你只需要打開 Docker CLI,打 docker system df 落去,佢就會即刻俾你一份清晰嘅報表。呢份報表會將 Docker 佔用嘅 儲存空間 分門別類,主要睇三樣嘢:映像檔容器 同埋 本地 Volume(即係 數據卷)同 Build Cache。每一類都會顯示佢用咗幾多總空間、有幾多係真正有用嘅、同埋有幾多係可以回收嘅 可回收空間。例如,你可能會見到有幾十個舊版嘅 鏡像 或者已經停止咗但未刪除嘅 容器 喺度霸住位,呢啲就係 空間佔用 嘅元兇。

等我舉個具體啲嘅例子。假設你喺開發一個新功能,不斷咁修改個 Dockerfile 然後 build 新 映像檔。每 build 一次,Docker 就會產生一層新嘅 layer,舊嗰啲如果冇 tag 名,就會變成「dangling」狀態,即係冇人用嘅孤兒 鏡像。同時,你每次 run 完測試容器,如果冇用 --rm 參數,個 容器 停止咗之後,佢嘅檔案系統依然會留喺度。日子有功,呢啲 垃圾 就會積少成多。用 docker system df 一睇,你就會見到「Images」或者「Containers」個欄目下面,「RECLAIMABLE」個百分比好高,咁你就知道係時候要做 資源回收 啦。

知道咗邊度有垃圾,下一步梗係要清啦。呢度就帶出另一個超好用嘅 指令docker system prune。呢個命令可以話係 docker system df 嘅好拍檔。當你睇完份報告,決定要大掃除,就可以行 docker system prune。佢會幫你剷走所有已停止嘅 容器、所有冇被任何容器使用嘅 網絡、以及所有 dangling 狀態嘅 映像檔。如果你想進階啲,仲有 docker container prune 專門清容器,docker image prune 專門清 鏡像清理,俾你更精準控制。不過要溫馨提示,行 prune 之前真係要 double-check,因為剷咗就未必救得返,特別係冇 tag 嘅 鏡像 或者入面有數據嘅 容器

所以,一個良好嘅 容器管理 習慣,就係定期行下 docker system df 做監察,跟住再按需要行 prune 命令做 系統優化。尤其係喺 CI/CD 環境或者 雲端儲存 成本敏感嘅地方,呢種 存儲優化 可以幫你慳返唔少 磁盤空間 同金錢。總而言之,Docker system df 絕對唔係一個複雜難明嘅 系統命令,而係一個實用至極,幫你一眼睇清 Docker 系統 儲存健康狀況嘅必備工具。將佢融入你日常嘅維運流程,就唔使再驚被 硬碟使用量 不足嘅問題殺個措手不及啦。

docker system df - 容器

About容器Professional illustrations

點解要用 docker system df

好啦,各位開發同 DevOps 嘅朋友,我哋嚟傾下點解要用 docker system df 呢個咁重要嘅 Docker System 命令。你諗下,當你個 伺服器 行咗 Docker 一排,裝咗好多 容器,build 過無數次 映像檔,仲有啲 數據卷 掛住喺度,你估下會發生咩事?無錯,就係你寶貴嘅 硬碟空間 會神不知鬼不覺咁被食清光!呢個時候,你唔好以為淨係 delete 咗個 容器 就冇事,背後啲 鏡像、cache、networks 可能仲霸住你幾十 GB 磁碟空間 㗎。所以,docker system df 就係你個 磁碟使用情況 嘅「照妖鏡」,一 run 落去,Docker daemon 就會幫你計清楚數,話俾你知邊啲係「正在使用」,邊啲係「吊吊揈」食緊你 硬碟空間 嘅孤兒檔案。

點解我哋要特登用呢個指令,而唔係就咁用系統嘅 df 命令呢?因為 Docker 自己有一套好複雜嘅 儲存空間 管理系統。你透過 Docker CLI 剷走一個 container,但係個 Dockerfile build 出嚟嘅中間層鏡像、或者係啲冇 tag 嘅 dangling images,好多時都會留低。docker system df 嘅厲害之處,在於佢係專為 Docker 系統 而設,會將 磁盤空間 嘅使用情況分門別類,清清楚楚列出 映像檔容器(包括停止咗嘅)、數據卷 同埋 網絡 各自用咗幾多位。佢仲會好貼心咁話俾你聽,邊部分係 可回收空間,等你一眼就知有幾多「垃圾」可以清。對於管理 雲端儲存 成本或者係本地 伺服器 嘅團隊嚟講,呢個指令絕對係 系統優化存儲優化 嘅第一步,冇佢你真係會「矇查查」。

舉個實際例子啦,假設你個團隊成日做 CI/CD,不斷 build 新 鏡像,舊版本嘅鏡像可能冇人用但係又冇 delete。過咗幾個月,你發現成個系統好慢,一查先知 硬碟使用量 爆咗 98%。你慌失失咁諗住剷啲舊 log 同 file,但其實問題根源喺 Docker 度。你 run 一次 docker system df,個 output 可能會嚇親你:原來有 15GB 係來自「dangling images」,另外仲有 10GB 係來自啲已經停止咗但係未清理嘅 container 嘅 cache 同 layer。冇呢個指令,你就要自己逐個 command 去估、去計,又煩又易出錯。有咗佢,你嘅 容器管理資源回收 工作就變得數據驅動,可以定期檢查,避免 空間佔用 問題累積到一發不可收拾。

咁知道咗 磁碟使用情況 之後,可以點做呢?呢度就帶出另一個 LSI相關關鍵詞docker system prune。當 docker system df 顯示有大量 可回收空間 時,你就可以考慮用 prune 系列指令去做 容器清理映像檔清理。不過,緊記唔好一嚟就 docker system prune -a 剷清光,好危險㗎!最好嘅做法係,先用 docker container prune 清走已停止嘅容器,再用 docker image prune 清走 dangling images,每一步之前都最好用 docker system df 對比下前後變化,監察住 磁碟空間 嘅釋放情況。呢個過程就係高效嘅 容器存儲 管理同 系統優化 嘅核心。總而言之,docker system df 唔係一個「用嚟威」嘅指令,而係一個實用嘅 系統命令,幫你保持 Docker 環境健康、節省 雲端儲存 成本、同埋避免因為 硬碟空間 不足而導致服務停擺嘅必備工具。養成定期檢查嘅習慣,你個 Docker 系統 先會長玩長有。

docker system df - Docker

AboutDockerProfessional illustrations

睇清 Docker 磁碟使用量

好啦,而家我哋就嚟深入「睇清 Docker 磁碟使用量」呢個核心問題。好多香港嘅開發者同系統管理員,尤其係用緊本地伺服器或者有限雲端儲存空間嘅朋友,都會遇到一個頭痛情況:明明冇開幾個容器,點解個硬碟空間會無啦啦爆滿?呢個時候,你就好需要識得用 Docker System 命令 入面嘅 docker system df 呢個指令,佢就好似一個 Docker 專用嘅「磁碟空間分析師」,幫你即刻斷症。

點解會無啦啦冇咗啲 硬碟空間?其實 Docker daemon 背後會儲存好多嘢,唔單止係你 run 緊嘅 容器。每當你 build 一個 Dockerfile,就會產生一層層嘅 映像檔;你每次 pull 新版本,舊嘅 鏡像 可能仲喺度。仲有,停止咗但未刪除嘅容器、冇人用嘅 數據卷、甚至係 Docker 自己管理嘅 網絡 配置,都會靜雞雞食住你啲 磁碟空間。如果你唔定期打理,就好似個倉庫塞滿咗舊貨同包裝紙皮,真正要用的空間反而冇晒。用 docker system df 一 check,你就可以一目了然,睇到總共用咗幾多空間,同埋呢啲空間分佈喺邊幾個類別:Images(映像檔)、Containers(容器)、Local Volumes(本地數據卷)同 Build Cache(構建緩存)。佢仲會好貼心咁顯示「RECLAIMABLE」,即係話有幾多空間係可以即時回收嘅,等你知從邊度入手 清理 最有效。

咁點樣用呢個 指令 呢?好簡單,喺 Docker CLI 打 docker system df 就得。但如果你想睇得更詳細,例如想知道邊幾個 鏡像 特別大食,或者邊啲停止咗嘅容器仲霸住位,就可以用 docker system df -v(verbose 模式)。呢個詳細模式會列出每一個獨立項目,等你唔會殺錯良民。例如,你可能會發現有幾個舊版本嘅應用程式 鏡像,每個都佔成幾 GB,但其實你早就轉用咗新 tag;又或者有一堆 標籤嘅懸空映像檔,呢啲都係 可回收空間 嘅大戶。透過呢個 系統命令,你對 Docker磁碟使用情況 就會有一個全面嘅掌握,唔使再估估下。

知道咗邊度「肥」,下一步就係點樣 清理Docker 提供咗一系列 docker system prune 指令幫你手。最直接嘅就係 docker system prune,佢會幫你清走所有停止嘅容器、冇用嘅網絡,同埋懸空嘅映像檔。如果你想進取啲,連冇掛載嘅數據卷都清埋,就可以加 -a 同 --volumes 旗標,不過咁做之前真係要 double-check,唔好清錯重要數據。如果你只想針對某一部分做 資源回收,例如淨係清理舊 映像檔,就可以用 docker system prune 嘅細分命令:docker image prune。同樣地,清理停止嘅容器就用 docker container prune。定期執行呢啲 容器清理 動作,係 存儲優化系統優化 嘅好習慣,尤其對於 磁盤空間 緊張嘅 伺服器 嚟講,可以避免成個系統因為冇空間而癱瘓。

總括嚟講,將 docker system df 變成你日常 容器管理 嘅例行檢查工具,絕對係明智之舉。養成習慣,每隔一兩個星期就 run 一次,睇下 儲存空間空間佔用 情況。咁樣你就能夠主動管理 硬碟使用量,而唔係等到 磁碟 爆紅燈先嚟撲火。對於團隊協作或者 CI/CD 環境,更加可以考慮將呢啲 清理 指令寫入自動化腳本,確保開發環境同生產環境都能保持 磁碟空間 健康。記住,有效嘅 容器存儲 管理,就係由「睇得清」開始,docker system df 就係你嗰把打開視野嘅鎖匙。

docker system df - Docker

AboutDockerProfessional illustrations

分析映像同容器大小

好啦,講到點樣分析映像同容器大小,呢個真係每個 Docker 用家都必須要識嘅基本功。你諗下,部伺服器硬碟空間就咁大,如果你唔定期檢查下 Docker 食咗你幾多磁碟空間,好快就會爆磁碟,到時連新嘅容器都起唔到就大鑊啦。喺 2026 年嘅今日,無論你係用緊本地開發機定係雲端儲存磁碟使用情況管理都係系統優化嘅核心。

咁點樣先知 Docker 霸佔咗幾多位呢?答案就係 docker system df 呢個指令。呢個 Docker System 命令就好似你部電腦嘅「磁碟清理」工具咁,一執行落去,Docker CLI 就會同 Docker daemon 攞數,然後清清楚楚列個表出嚟,話你知三樣主要嘢食咗幾多儲存空間映像檔容器,同埋數據卷。佢會分開顯示總大小、實際使用量,同埋最緊要嘅「可回收空間」。好多新手淨係識睇總大小,但其實「可回收空間」先係寶藏,即係啲冇用嘅緩存、停止咗嘅舊容器層、冇標籤嘅鏡像呢啲空間佔用,可以透過清理指令收返嘅位。

等我哋深入少少,逐項拆解。首先係映像檔,呢度嘅數字最容易「呃人」。你喺 Dockerfile 入面寫多幾層 RUN,又或者 pull 咗唔同版本嘅同一個軟件,都會令到映像檔嘅體積不斷膨脹。docker system df 會顯示所有映像檔加埋嘅總大細,但你要記住,如果多個映像檔共享同一個基礎層,呢個總數係有重複計算嘅成分。所以,當你見到映像檔佔用咗異常多空間,就要諗下係咪有好多 標籤嘅懸空映像,呢啲就係 可回收空間 嘅大戶。

跟住落嚟係容器。每個運行緊或者停止咗嘅容器,都會喺底層嘅映像檔上面,再加多一層可寫層,用嚟記錄運行時嘅所有改動。如果你個容器係數據庫,不斷寫 log 同數據,咁呢層就會愈嚟愈肥。docker system df 可以幫你一眼睇晒所有容器嘅總硬碟使用量。如果你發現容器總大小比映像總大小仲要大好多,咁就可能係某啲容器寫入咗大量數據到可寫層,又或者有好多已經停止咗但係未清理嘅舊容器,呢啲都係資源回收嘅目標。

最後就係數據卷網絡,不過網絡唔佔磁碟空間,所以主要關注點係數據卷。數據卷係獨立於容器生命週期嘅持久化儲存,用嚟保存重要數據。docker system df 都會顯示數據卷佔用嘅空間,但呢部分通常唔係清理嘅主要對象,因為入面可能係重要數據,亂刪會出事。分析嘅重點應該係,有冇啲冇被任何容器掛載嘅「孤兒」數據卷,呢啲先係可以安全清理嘅可回收空間

知道咗邊度肥,下一步就係點樣瘦身。最基本嘅容器清理指令就係 docker container prune,佢會幫你刪除所有已停止嘅容器,即刻釋放空間。同樣道理,映像檔清理可以用 docker image prune,專刪懸空映像。如果你想一次過做晒,夠晒豪快,就可以用 docker system prune。呢個指令好強大,預設會幫你清走已停止嘅容器、所有懸空映像,同埋冇用嘅網絡。不過用之前要小心,記住加 -a 參數連冇被任何容器使用嘅映像都刪埋,或者加 --volumes 連孤兒數據卷都清理,但後者真係要百分百確認數據冇用先好做。定期執行呢啲 prune 指令,係保持你 Docker 環境健康、磁碟空間充足嘅不二法門。

總而言之,docker system df 就係你監控 Docker 磁碟使用情況嘅儀表板。養成習慣,每隔一段時間就 run 一次,分析下各項目的空間佔用,然後針對性地進行存儲優化。尤其係喺 CI/CD 環境或者開發機,好容易積存大量中間映像檔同舊容器,主動出擊做資源回收,先可以避免硬碟空間無啦啦被食清光嘅尷尬情況。記住,有效嘅容器管理,就係由清晰了解同控制儲存空間開始。

docker system df - Docker

AboutDockerProfessional illustrations

識別磁碟空間問題

好啦,講到Docker用耐咗,部伺服器或者你部開發機嘅硬碟空間無啦啦爆滿,呢個情況真係好常見。好多時啲人第一反應就係去清啲大檔案,但其實問題好可能出喺Docker度。點解呢?因為Docker喺背後默默咁儲存咗大量你未必記得嘅嘢,例如係舊版嘅映像檔、停止咗但未刪嘅容器、仲有啲無人用嘅數據卷網絡設定。呢啲資源會隨住時間不斷累積,尤其係喺CI/CD環境或者頻密開發嘅情況下,好快就會食晒你嘅磁碟空間。所以,識別問題嘅第一步,就係要識得用Docker提供嘅工具去「斷症」。

要精準咁識別磁碟空間問題,最直接嘅方法就係用Docker System 命令入面嘅docker system df呢個指令。呢個命令就好似一個專為Docker而設嘅「磁碟空間分析儀」。你一喺Docker CLI打呢句指令,佢就會俾你一個清晰嘅表格,詳細列出幾類主要資源嘅磁碟使用情況。佢會分開顯示映像檔容器本地數據卷同埋構建緩存(如果適用)各自用咗幾多空間。更重要嘅係,佢會顯示「RECLAIMABLE」呢一欄,即係話俾你知有幾多空間係可以立即回收嘅。例如,佢會話你知有幾多個懸空(dangling)嘅鏡像(即係冇標籤或者冇任何容器用到嘅舊層),或者有幾多個停止咗嘅容器佔住啲位。呢個全景式嘅視圖,可以幫你快速知道問題嘅根源係邊度,究竟係鏡像儲得太多,定係容器清理得唔夠密,一睇就知。

睇完個總表,想再深入啲診斷,就要識得用docker system df -v呢個指令(-v 係 verbose 嘅意思)。呢個詳細模式會將每一項資源嘅佔用情況都列晒出嚟,逐個映像檔、逐個容器咁列出佢哋嘅實際大小同埋相關性。呢個時候你可能會發現一啲驚人嘅事實,例如某個你以為好細嘅映像檔,因為層數太多或者構建歷史冇清理,實際佔用空間比想像中大好多;又或者某個測試用嘅容器,雖然停咗但係連住一個好大嘅數據卷,一直冇釋放。呢種深入嘅分析對於存儲優化係必不可少嘅,尤其係當你嘅服務部署喺雲端儲存成本唔平嘅環境時,每一分錢都要使喺刀口上。

知道咗邊度「肥」,下一步就係諗點樣「減肥」。呢個時候,docker system prune 系列嘅指令就係你嘅好幫手。不過,喺落手清理之前,一定要明白每個指令嘅作用同風險。例如,docker system prune 會一次過清理懸空鏡像、停止嘅容器、冇用嘅網絡同埋構建緩存,威力強大。如果你想有針對性啲,可以用 docker image prune 專門清理映像檔,或者用 docker container prune 清理停止咗嘅容器。要留意嘅係,喺2026年嘅今日,Docker Daemon 嘅版本可能已經有更精細嘅清理選項,例如係按時間過濾(--filter "until=<時間戳記>")嚟清理某個時間點之前嘅資源,呢個對於制定自動化清理策略好有用。記住,所有 prune 指令都可以加 -a 參數嚟清理所有冇被容器使用嘅映像檔(唔單止懸空鏡像),但呢個動作會剷走你可能仲需要嘅基礎鏡像,所以要小心使用。

最後,要長遠解決磁碟空間問題,單靠手動清理係唔夠嘅,必須要建立良好嘅習慣同策略。首先,喺編寫Dockerfile嘅時候,就要有系統優化嘅意識,例如使用多階段構建(multi-stage build)嚟減少最終映像檔嘅大小,同埋定期更新基礎鏡像以減少安全漏洞同層數累積。其次,可以考慮設定定期自動執行嘅資源回收任務,例如每星期用Cron Job執行一次有過濾條件嘅 prune 命令,防止垃圾資源積少成多。另外,對於生產環境,可以考慮使用第三方可視化工具或者監控方案,將Docker嘅磁碟使用情況整合到整體嘅伺服器監控儀表板入面,咁就可以第一時間發現異常嘅空間增長。總而言之,識別磁碟空間問題唔係一次性動作,而係一個持續性嘅容器管理過程。由用 docker system df 快速診斷,到深入分析,再到有策略地執行容器清理映像檔清理,最後建立預防機制,呢一整套流程先可以確保你嘅Docker環境保持健康,唔會俾突如其來嘅硬碟空間不足問題殺到措手不及。

docker system df - Docker 系統

AboutDocker 系統Professional illustrations

清理無用 Docker 資源

好啦,講到點樣清理無用 Docker 資源,呢個真係每個用緊 Docker 嘅工程師同系統管理員都要識嘅必備技能。你諗下,日日 build 吓 image,run 吓 container,test 完又唔記得剷,好快就會發現部伺服器硬碟空間無啦啦唔見咗一大截。呢個時候,Docker System 命令就係你嘅救星,尤其係 docker system df 呢個指令,就好似一個磁碟使用情況報告咁,俾你一眼睇清戰場。

首先,你一定要識用 docker system df。打呢句 指令Docker CLI,佢會即刻同你 breakdown 晒磁碟空間點樣被消耗。佢會分開幾個大類嚟顯示:映像檔(Images)、容器(Containers)、同埋數據卷(Volumes)同網絡(Networks,通常唔佔大空間)。最有用係佢會顯示「RECLAIMABLE」呢一欄,直接話俾你知有幾多可回收空間。例如,你可能會見到有幾百 MB 甚至幾 GB 嘅「dangling」images,即係一啲冇名冇姓、冇被任何 container 使用嘅中間層映像檔,呢啲就係清理嘅首要目標。呢個系統命令俾你嘅就係數據支持,等你唔使估估下,可以針對性地進行資源回收

知道咗邊度嘥位,跟住落嚟就係動手清理。最直接強力嘅方法,就係使用 docker system prune。呢個指令可以話係一鍵式容器存儲大掃除。當你執行呢個命令,佢預設會幫你剷走所有已停止嘅容器、所有冇被任何 container 使用嘅網絡、以及所有「dangling」嘅映像檔。呢個過程就係系統優化嘅關鍵一步,可以即時釋放出唔少儲存空間。不過要小心,呢個指令唔會剷你仲用緊嘅嘢,但如果你有啲停止咗但想保留嘅 container,就要諗清楚。為咗更精準,你可以分開嚟做容器清理映像檔清理,例如用 docker container prune 淨係清理已停止嘅容器,或者用 docker image prune 去清理冇用嘅 images,咁樣控制權就大啲。

對於進階使用者嚟講,清理無用 Docker 資源唔可以只係手動做,而應該變成自動化流程嘅一部分。尤其係喺 CI/CD 環境或者長期運作嘅雲端儲存伺服器上面,定期執行 prune 指令可以防止磁碟空間被慢慢蠶食。你可以設定一個 cron job,例如每星期自動行一次 docker system prune -a --volumes(注意,加 -a 會連所有冇被 container 使用嘅 images 都剷埋,加 --volumes 會連冇用嘅數據卷都清理,呢個好狠,要確保數據卷入面冇重要資料先好做)。呢種存儲優化策略,可以確保你嘅 Docker 環境長期保持健康,唔會因為空間佔用問題而突然令服務跪低。

另外,想從根源減少垃圾,就要喺創作嘅時候落手。寫Dockerfile時,用多階段構建(multi-stage build)可以大大減輕最終映像檔嘅大小,咁樣本身已經係一種儲存空間嘅節省。同時,養成良好習慣,本地開發測試完,順手就將停止咗嘅 container 同埋用唔著嘅 image 清一清。記住,每一個冇清理嘅容器鏡像,都係喺度蠶食緊你寶貴嘅硬碟空間。總而言之,善用 docker system df 做診斷,再配合 docker system prune 等指令做治療,定期進行容器管理資源回收,咁先可以令你嘅 Docker 系統保持清爽,運行得更順暢。

docker system df - Docker System 命令

AboutDocker System 命令Professional illustrations

2026 年最佳清理策略

講到 2026 年嘅最佳清理策略,我哋就唔可以再停留喺「得閒先執」嘅舊思維啦。尤其係當你部伺服器行咗 Docker 一段時間,硬碟空間無啦啦就爆咗,成個系統慢到喊,你就知死。呢個時候,Docker System 命令就係你嘅救星,而 docker system df 就係你嘅「磁碟空間體檢報告」。呢個指令好簡單,但佢俾你睇到嘅係一個全景圖:幾多空間俾映像檔(Image)食咗、幾多俾停止咗嘅容器(Container)佔住、幾多係數據卷(Volume)同網絡(Network)嘅 Cache 用咗,仲會醒目咁話俾你知有幾多係 可回收空間。2026 年嘅最佳策略,就係由呢份報告出發,做一個有系統、有層次、自動化嘅 資源回收 流程,而唔係亂咁剷嘢。

首先,你要識得解讀 docker system df 嘅結果。佢會列出四類 儲存空間 嘅使用情況:Images、Containers、Local Volumes 同 Build Cache。每一類都會顯示總大小、實際使用量同 可回收空間。重點睇「RECLAIMABLE」呢一欄,數字愈大,代表你愈有「寶藏」可以清。例如,你見到 Images 嗰欄有幾十 GB 可回收,通常就係因為你 build 過好多唔同版本嘅 鏡像,或者拉咗好多唔用嘅舊版 Image 落嚟,呢啲就係首要清理目標。2026 年嘅 Docker daemon 同 Docker CLI 工具更加智能,有時甚至會提示你某啲懸空(dangling)資源嘅存在時間,幫你決定清唔清。

睇完報告,就要行動。最直接嘅 清理 指令梗係 docker system prune。但係,亂用呢個指令好危險,可能剷錯你重要嘅開發中鏡像或者數據。所以,2026 年嘅最佳策略係「分層精準清理」,即係用更細粒度嘅指令。第一步,我哋可以先處理 Build Cache。如果你成日 build Dockerfile,個 cache 可以好大。用指令 docker builder prune 就可以清走所有 build cache,呢下通常可以即時釋放可觀空間,而且相對安全。跟住,處理停止咗嘅容器。用 docker container prune,佢會問你確認,然後清走所有已停止嘅容器。做呢步前,最好用 docker ps -a 睇清楚有冇邊個停止咗嘅容器入面有重要數據未拎返出嚟。

清完容器,就到重頭戲:映像檔清理。呢度有兩個策略。策略一,清走所有懸空鏡像(即係冇名、冇 TAG,通常係 build 過程嘅中間產物)。指令係 docker image prune。策略二,就係進階啲,清走所有冇被任何容器使用緊嘅鏡像。指令係 docker image prune -a注意! 用「-a」呢個選項要好小心,因為佢會剷走所有冇即時被運行中容器引用嘅鏡像,包括你可能之後想用嘅舊版本。所以,2026 年嘅老手做法,會先配合 docker system dfdocker images 命令,睇下邊啲鏡像真係好舊、TAG 係 none、或者肯定唔會再用,先至手動剷除(用 docker rmi ),又或者設定 filter 去自動清理,例如只清理 3 個月前嘅懸空鏡像。

數據卷(Volumes)同網絡(Network)通常佔空間唔算最多,但日積月累都唔講得笑。數據卷 尤其棘手,因為入面係實實在在嘅數據檔案。docker volume prune 會清走所有冇被容器掛載緊嘅 volume。執行前必須、必須、必須確認入面冇重要數據! 最好嘅做法,係定期檢查同備份重要 volume 嘅數據,然後先清理啲臨時測試用 volume。至於網絡,docker network prune 會清走冇用嘅自定義網絡,呢部分通常比較安全。

最後,2026 年嘅終極策略係「自動化同預防」。冇人想日日手動做 磁碟空間 管理。你可以設定定期任務(Cron Job),喺系統負載低嘅時候(例如凌晨),自動執行一啲安全嘅清理指令,例如每星期自動清理懸空鏡像同停止嘅容器。同時,要養成好習慣:寫 Dockerfile 時用多階段構建(multi-stage build)來減少最終鏡像大小;用明確嘅版本 TAG 而唔係成日用 latest;定期檢查並刪除唔再需要嘅本地鏡像同 volume。另外,而家好多 雲端儲存 同 CI/CD 平台都同 Docker 深度整合,可以設定策略自動清理遠端 registry 嘅舊鏡像,從源頭減少本地拉取嘅垃圾。

總而言之,2026 年嘅 最佳清理策略,核心就係「數據驅動嘅精準維護」。由 docker system df 呢個診斷工具開始,瞭解你 Docker 系統磁碟使用情況,然後有步驟、有選擇性地運用 docker system prune 及其系列子命令進行 存儲優化。將一次性清理變成一個持續嘅 系統優化 流程,咁先可以確保你嘅開發環境同生產 伺服器 長期保持健康,唔會俾啲 Docker 垃圾食盡你寶貴嘅 硬碟空間,真正做到高效 容器管理。記住,清理唔係目的,維持系統清爽、高效先係王道。

docker system df - Dockerfile

AboutDockerfileProfessional illustrations

點解空間會無端端滿

好多Docker用家都試過,明明冇做乜特別嘢,但係硬碟空間就無端端爆滿,搞到部伺服器行得慢吞吞,甚至連新嘅容器都起唔到。呢個問題其實好常見,尤其係當你長期用Docker做開發或者部署服務,磁碟空間就好似變魔術咁慢慢消失。點解會咁?主要係因為Docker喺背後默默儲存咗大量你未必察覺到嘅資料,而呢啲資料唔會自動清理,日積月累下就會食晒你嘅磁碟

首先,你要明白Docker點樣用你嘅硬碟空間。每次你拉取一個映像檔(Image),或者自己用Dockerfile build一個新鏡像,Docker都會將呢啲鏡像嘅層(Layers)儲存喺本地。就算你刪除咗某個容器,佢背後用嘅鏡像同埋一啲中間層可能仲會留低。另外,Docker運行容器時會產生嘅寫入層(Writable Layer),以及你掛載嘅數據卷(Volumes),都會持續佔用空間。更隱蔽嘅係,當你停止或刪除容器後,Docker並唔會立即釋放所有相關嘅網絡配置、緩存或者build cache,呢啲都係Docker daemon管理嘅一部分。所以,你喺Docker CLI打指令時覺得清咗嘢,實際上磁碟使用情況可能冇乜改善。

另一個常見原因係容器產生嘅日誌檔案。如果你個應用程式不停寫log,而你又冇設定log rotation(日誌輪替),咁個log檔案可以大到幾GB甚至更多,直接塞爆你嘅儲存空間。尤其係喺雲端儲存成本都要計住嘅情況下,呢啲無謂嘅空間佔用好傷。仲有,如果你經常做測試,build咗好多唔同版本嘅映像檔,或者留低咗好多停止咗嘅容器,咁可回收空間就會越積越多。呢個時候,你就需要用到Docker system相關嘅指令嚟做深入檢查同清理

要睇清楚空間去咗邊,最直接就係用docker system df呢個系統命令。佢會俾你一個總覽,話你知映像檔容器數據卷網絡各自用咗幾多空間,仲會顯示有幾多係可回收空間。你會發現,好多時係一堆標籤嘅懸空鏡像(dangling images)或者已停止嘅容器食咗你大部分磁碟空間。呢啲就係資源回收嘅主要目標。知道問題根源後,你就可以採取行動,例如用docker system prune呢個容器清理指令。呢個指令可以一次過清除所有停止嘅容器、冇用嘅網絡,同埋懸空嘅鏡像,幫你釋放返唔少硬碟使用量。如果你想再進取啲,可以加-a參數連冇被任何容器引用嘅鏡像都刪埋,不過就要小心睇清楚,唔好誤刪重要嘅基礎鏡像。

當然,docker system prune算係比較大刀闊斧,如果你想針對性啲清理,可以分開用docker container prune專清已停止嘅容器,或者用docker image prune清理懸空鏡像。對於數據卷,因為裏面可能係重要數據,所以要手動檢查同清理,唔好亂用prune。定期執行呢啲系統優化動作,就好似幫你部機做家務咁,可以避免空間佔用不知不覺失控。另外,養成好習慣,例如寫Dockerfile時用.dockerignore檔案忽略唔需要嘅build context檔案,同埋設定應用程式嘅日誌級別同輪替策略,都可以從根源減少磁盤空間嘅浪費。

總而言之,Docker雖然方便,但佢嘅存儲優化唔係全自動,需要你定期監察同維護。當你發現磁碟空間無端端滿嘅時候,唔使驚,通常都係呢啲日常運作產生嘅殘留物。善用docker system df呢類容器管理工具去分析disk usage,再配合適當嘅prune指令做映像檔清理鏡像清理,就好容易可以攞返大量空間,令你嘅Docker系統保持清爽同高效。記住,預防勝於治療,建立定期檢查磁碟使用情況嘅習慣,先係長遠解決硬碟空間問題嘅王道。

docker system df - 映像檔

About映像檔Professional illustrations

虛懸映像點樣處理

好啦,講到點樣處理虛懸映像(Dangling Images),呢個真係每個Docker用家,尤其係管理伺服器嘅朋友,遲早都會遇到嘅頭痕問題。簡單嚟講,虛懸映像就係嗰啲冇標籤(tag)又冇被任何容器引用嘅舊映像檔,通常係因為你反覆用同一個名去 build 新鏡像(例如每次都 docker build -t my-app:latest .),令到舊嗰個變成 : 咁嘅樣,但就繼續霸住你寶貴嘅硬碟空間。喺2026年嘅今日,無論你係用雲端儲存定係本地磁碟,無謂嘅空間佔用都係浪費金錢同資源,所以定期清理呢啲「孤兒仔」絕對係容器管理系統優化嘅基本動作。

咁點樣知道有幾多虛懸映像同佢哋食咗幾多磁碟空間呢?最基本就係靠 Docker System 命令 入面嘅 docker system df 呢個指令。你喺 Docker CLI 打呢句命令,佢就會清清楚楚列出映像檔容器數據卷網絡各自用咗幾多空間,其中一行就會顯示「虛懸映像」有幾多個,總共佔用幾多GB/MB。呢個就係你進行資源回收嘅第一步,先診斷,後治理嘛。如果你見到「可回收空間」個數字好大,咁就事不宜遲啦。

處理虛懸映像,最直接強力嘅方法就係用 docker system prune 指令。不過要小心,呢個命令默認會清理所有停咗嘅容器、所有冇用嘅網絡、同所有虛懸映像。如果你只想針對性地清理虛懸映像,就應該用 docker image prune。如果你想再進取啲,連所有冇被容器使用嘅映像都清埋(即係包括一啲你有tag但冇用緊嘅舊版本),就可以加 -a 旗標。但喺執行之前,真係要 double-check,確保冇重要嘅舊版本鏡像會被誤刪。我嘅建議係,日常維護可以定期(例如每星期)執行 docker image prune -f,個 -f 係 force,即係唔使再問你 yes/no,自動幫你清走所有虛懸映像,對於自動化腳本嚟講好方便。

除咗手動執行指令,其實喺2026年,更加成熟嘅做法係將清理動作融入你嘅 CI/CD 流程或者日常維護腳本入面。例如,每次伺服器做自動化部署(Deployment)之後,都可以加一個步驟去執行虛懸映像清理,防止儲存空間不知不覺被蠶食。另外,養成良好嘅Dockerfile編寫習慣都可以從源頭減少虛懸映像產生,例如善用多階段構建(multi-stage build)嚟減少中間層,同埋有意識地管理鏡像標籤,唔好永遠只用 latest,可以加上版本號或者 git commit hash,咁樣舊鏡像有明確標籤,就唔會輕易變成虛懸狀態,你清理起上嚟目標也更明確。

最後都要提一提,磁碟使用情況嘅管理係一個整體。docker system df 幫你睇到大局,而處理虛懸映像只係存儲優化嘅其中一環。你仲需要配合其他指令,例如 docker container prune 清理停咗嘅容器,docker volume prune 清理冇用嘅數據卷,先可以全方位釋放硬碟空間。記住,Docker daemon 係唔會自動幫你做呢啲資源回收嘅,所有嘢都要靠你有意識咁去管理。尤其係而家容器應用愈嚟愈複雜,鏡像層疊鏡像,好容易就搞到個磁碟紅爆。所以,將 docker system df 同 docker image prune 呢類系統命令變成你嘅例行檢查動作,先至係保持Docker 系統健康、伺服器運行順暢嘅不二法門。

docker system df - 鏡像

About鏡像Professional illustrations

容器數據卷點樣管理

講到容器數據卷點樣管理,其實係Docker系統優化入面好關鍵嘅一環,尤其係當你發現伺服器硬碟空間越嚟越少嗰陣。好多香港嘅開發同維運朋友,成日會用Docker CLI去起服務,但係好容易忽略咗數據卷(Volume)同埋緩存呢啲隱形嘅「空間殺手」。點解咁講?因為Docker daemon 喺背後默默運作時,除咗你睇到嘅容器同映像檔,仲會產生好多中間層(Intermediate Layers)、懸空數據卷(Dangling Volumes)同埋網絡緩存,呢啲嘢唔會自動消失,日子有功就會食晒你寶貴嘅磁碟空間。所以,識得用Docker System命令去管理數據卷,唔單止可以釋放硬碟空間,仲可以令成個Docker環境更加暢順。

首先,你要搞清楚數據卷嘅生命週期同埋點樣佔用磁碟空間。數據卷本身係獨立於容器嘅持久化儲存,就算你刪除咗個容器,個數據卷好多時都仲喺度。呢個設計原意係好嘅,可以保護數據,但如果你冇定期清理嘅習慣,就會積存大量冇用嘅「孤兒卷」。點樣知道有幾多呢類空間被佔用?最直接就係用 docker system df 呢個指令。佢會俾你一個清晰嘅表格,列出映像檔、容器、本地數據卷同埋構建緩存各自用咗幾多磁碟空間,仲會顯示有幾多係「可回收空間」。當你見到「Reclaimable」個數字好大嘅時候,就係時候要做資源回收喇。

噉點樣實際執行數據卷管理同清理呢?我哋可以分幾個層次去做。第一層,係針對性清理冇用嘅數據卷。你可以用 docker volume ls 睇吓有邊啲數據卷係冇被任何容器掛載緊(即係顯示「DRIVER」為「local」但「CONTAINER」欄係空嘅)。確認咗之後,可以用 docker volume prune 去移除呢啲孤兒卷。溫馨提示:執行呢個指令前,真係要 double-check,確保入面冇重要數據,因為刪除咗就冇得返轉頭。對於有啲朋友嚟講,可能仲會用緊舊式嘅「數據卷容器」模式,噉就更要留意,清理時要確保冇其他容器依賴緊。

第二層,係結合其他Docker系統命令去做全面嘅儲存空間優化。docker system prune 係一個強大嘅一站式清理指令,佢預設會清除所有懸空嘅映像檔、容器、網絡同數據卷。如果你想連埋冇用嘅映像檔同埋構建緩存都清埋,可以加 -a--volumes 參數。不過,喺生產環境用呢個指令要極度小心,最好先喺測試環境試清楚效果。另外,對於映像檔清理,你可以用 docker image prune 去移除冇標籤或者冇被任何容器引用嘅舊映像檔,呢啲都係食磁碟嘅大戶。

除咗手動清理,更高階嘅管理仲包括預防同規劃。例如,喺編寫Dockerfile嘅時候,就要有意識地減少構建層數,同埋用 .dockerignore 檔案避免將唔必要嘅檔案加入映像檔,從根源減少空間佔用。另外,對於數據卷嘅使用,要有清晰策略:邊啲數據真係需要持久化?可唔可以定期備份後清理?可唔可以考慮用雲端儲存服務而唔係全部擺喺本地磁碟?特別係而家已經係2026年,雲原生同混合雲架構好普遍,將一啲歷史日志、備份數據放上雲端,可以大大減輕本地伺服器嘅硬碟壓力。

最後,想講吓點樣將呢啲管理動作自動化。對於團隊或者需要長期運維嘅系統,唔可能每次都人手入去執行 docker system dfprune 指令。你可以考慮寫定啲 Shell Script,配合 Cron Job 去定期檢查磁碟使用情況同執行安全範圍內嘅清理。又或者,利用而家一啲主流嘅容器監控工具,設定當磁碟空間使用率超過某個阈值(例如80%)時,就自動觸發告警甚至係清理流程。噉樣先至叫做真正嘅系統優化,唔使等到爆硬碟先嚟救火。總而言之,管理容器數據卷唔係一次性動作,而係一個持續嘅存儲優化習慣,由日常指令到架構規劃都要諗得清清楚楚。

docker system df - 數據卷

About數據卷Professional illustrations

優化 Docker 儲存空間

講到點樣優化 Docker 儲存空間,呢個真係每個 DevOps 同系統管理員遲早都要面對嘅實戰課題。尤其係當你部伺服器行咗 Docker 一段時間,硬碟空間無啦啦就俾 Docker 食到七七八八,成日彈出「disk space low」嘅警告,真係幾頭痛。點解會咁?其實 Docker 喺背後默默儲低咗好多你未必知嘅嘢:例如你每次 build 一個新版本嘅映像檔,舊嘅鏡像層(layer)好多時會留低;又或者你停用咗嘅容器,佢哋嘅可寫層(writable layer)同相關數據卷都仲霸住磁碟空間。呢啲都係所謂嘅「可回收空間」,如果唔定期清理,好快就會令你嘅硬碟使用量爆煲。

要有效咁做儲存空間優化,第一步梗係要清楚知道磁碟空間究竟係邊度被用咗。呢個時候,Docker System 命令入面嘅「docker system df」就係你嘅最佳拍檔。呢個指令就好似一個磁碟使用情況報告工具,佢會清晰咁列出三樣主要嘢佔用咗幾多空間:映像檔、容器同本地數據卷。佢仲會好貼心咁話你知,邊啲空間係「可回收」嘅,例如係冇被任何容器使用嘅懸浮映像檔,或者係已經停止咗嘅容器所佔用嘅空間。睇完呢個報告,你就會對成個 Docker 系統嘅儲存健康狀況有個即時嘅了解,知道要從邊度落手做清理。

知道問題所在之後,就可以進行實際嘅資源回收行動。Docker CLI 提供咗一系列強大嘅「prune」指令,專門用嚟幫你自動清理唔要嘅嘢。最常用嘅就係「docker system prune」。你直接打呢個指令,佢預設會幫你清走所有已停止嘅容器、所有冇被容器使用嘅網絡,同所有懸浮嘅映像檔。如果你連懸浮嘅數據卷都想一次過清埋,可以加個「-a」同「--volumes」旗標落去,不過要小心,清數據卷會永久刪除入面嘅數據,執行前一定要 double-check。呢個指令係一個好全面嘅系統優化工具,可以一次過釋放唔少磁碟空間。

當然,有時你可能想有更精細嘅控制,唔想一刀切。Docker 亦都有針對唔同組件嘅獨立清理指令。例如,你只想清理晒所有已停止嘅容器,就可以用「docker container prune」;如果淨係想刪除冇被使用嘅映像檔,就可以用「docker image prune」。對於數據卷,因為入面可能存有重要數據,Docker 會更謹慎,你需要明確用「docker volume prune」先會進行清理。呢種分開處理嘅方式,對於容器管理嚟講更加靈活,尤其適合喺生產環境中,你想逐部份確認同清理嘅時候用。

除咗事後清理,事前嘅預防同養成好習慣其實更重要,呢個先係真正嘅存儲優化。首先,喺編寫 Dockerfile 嘅時候就要有優化意識。盡量合併多行 RUN 指令、用 .dockerignore 檔案避免將唔相關嘅檔案(例如 log、cache 或者 node_modules)複製入映像檔,同埋揀選更細嘅基礎映像檔,都可以有效減少最終生成嘅映像檔大小,從源頭減輕儲存壓力。其次,建立定期清理嘅機制。你可以將「docker system prune -a --volumes」呢類指令寫入 cron job,設定每星期或者每個月自動執行一次,咁就唔使驚儲存空間會不知不覺間被蠶食。最後,善用雲端儲存方案。對於需要長期保留嘅重要映像檔,可以考慮推送到 Docker Registry 或者雲端嘅容器倉庫(例如 AWS ECR、Google Container Registry),而唔係全部擺喺本地伺服器,咁樣可以大大減輕本地硬碟嘅負擔。

總括嚟講,優化 Docker 儲存空間唔係一個一次性動作,而係一個持續嘅容器存儲管理過程。由用「docker system df」做診斷,到用各種 prune 指令做治療,再到從 Dockerfile 設計同工作流程上做預防,每一步都好關鍵。只要你將呢啲實踐融入日常嘅容器管理入面,就唔使再成日擔心硬碟空間唔夠用,可以令你嘅 Docker daemon 同伺服器運行得更加順暢同高效。記住,保持磁碟空間清爽,就係保持系統效能嘅第一步。

docker system df - 網絡

About網絡Professional illustrations

自動化清理指令教學

好啦,講完手動睇報告,係時候教你點樣自動化清理,等部伺服器硬碟空間唔使成日爆煲。喺2026年嘅今日,Docker 項目嘅自動化工具已經好成熟,唔使再好似以前咁逐樣逐樣清理,搞到手忙腳亂。呢度主要會教你用 Docker System 命令 入面嘅 prune 系列指令,配合一啲技巧,設定自動執行,咁就真係可以「躺平」管理磁碟空間啦。

首先,最基本嘅自動化起步點,就係直接喺 Docker CLI 打指令。最霸道但又最有效嘅一招,就係 docker system prune -a。呢個指令好「狠」,佢會幫你清走所有停咗嘅容器、所有冇被任何容器使用嘅映像檔(即係鏡像),以及所有冇用嘅網絡同埋 build cache。記住,加咗 -a 就係連所有 dangling image(冇標籤嘅中間層鏡像)同埋冇用嘅鏡像都清,釋放最多磁碟空間。不過新手要小心,因為可能會清走一啲你仲想留低嘅測試鏡像。如果唔想咁進取,可以先用 docker system prune(唔加 -a),佢會保留一啲有標籤但冇用嘅鏡像,相對溫和啲。每次執行,Docker daemon 都會問你確認,想完全自動化就要加多個 -f(force)參數,即係 docker system prune -a -f,咁就唔使確認直接清。

不過,成日手動打指令點叫自動化呢?所以進階玩法就係利用伺服器嘅排程任務。例如喺 Linux 嘅 伺服器,你可以用 crontab 去定期執行。假設你想每個星期日凌晨三點自動做一次大掃除,可以喺 crontab 加入一行:0 3 0 /usr/bin/docker system prune -a -f。咁樣設定好之後,系統命令就會定時幫你執行資源回收,長期保持儲存空間健康。對於雲端儲存成本敏感嘅公司,呢個自動化設定可以慳返唔少冤枉錢,避免硬碟使用量無故飆升。

當然,有陣時你只想針對某類資源做清理,而唔係一刀切。Docker CLI 提供咗好幾個專門嘅 prune 指令,你可以因應需要組合落自動化腳本入面。例如: docker container prune -f:只清走所有已停止嘅容器,對於經常測試、起完又停嘅環境好有用。 docker image prune -a -f:集中清理映像檔,特別係喺 CI/CD 流程中產生大量中間鏡像,呢個指令可以幫你釋放大量可回收空間 docker volume prune -f:專門清理冇被任何容器掛載嘅數據卷。呢個要格外小心,因為數據卷通常存有持久數據,但確實有好多臨時 volume 會遺留,清走佢哋係存儲優化嘅關鍵一步。 docker network prune -f:清理冇用嘅網絡,通常佔用空間唔大,但可以保持環境整潔。

你可以寫一個 Shell Script,將以上幾個指令按你嘅策略組合起來,例如先清容器,再清鏡像,最後清 volume,然後再將呢個 script 放去 crontab 定時執行。咁樣嘅容器管理策略就更加精細同安全。

最後提多個實用技巧,就係點樣喺自動化清理前「睇睇數」。你可以將 docker system df 指令都放入自動化流程。例如,寫個 script 先執行 docker system df,將輸出結果(顯示總磁碟使用情況、各類別嘅空間佔用)寄去你嘅電郵或者寫入 log file,然後再執行清理指令。清理完之後,再執行一次 docker system df,將「前後對比」結果都記錄低。咁樣你就有晒數據記錄,知道每次自動化清理到底幫你釋放咗幾多 disk space,對於監控同系統優化嘅匯報好有幫助。記住,自動化唔係「set 咗就忘」,有監控嘅自動化先係真正有效率嘅容器存儲管理方法。

docker system df - 伺服器

About伺服器Professional illustrations

監控磁碟使用趨勢

好啦,各位 DevOps 嘅朋友同埋系統管理員,講到 監控磁碟使用趨勢,呢個就唔係單單睇一次 docker system df 咁簡單喇。你要當佢係一個長期嘅健康檢查,好似你定期量血壓咁,要睇住條「趨勢線」點樣行,先至可以早啲發現問題,唔使等到 伺服器硬碟空間 爆咗先嚟撲水。點解呢?因為 Docker 環境入面,映像檔、停止咗嘅 容器、冇用嘅 數據卷 同埋 網絡,呢啲嘢嘅佔用係會「暗啞底」咁慢慢增長,尤其係喺 CI/CD pipeline 頻密構建、或者開發團隊成日試新嘢嘅環境,磁碟空間 好快就會唔見咗一大截。所以,淨係記得 清理 指令係唔夠嘅,你要建立一個監控習慣,了解你個系統嘅「食量」同「新陳代謝」。

咁點樣有效監控呢?首先,你要識得解讀 docker system df 輸出嘅數字背後嘅故事。呢個 Docker System 命令 會好清晰咁分開 映像檔容器數據卷 同本地 網絡磁碟使用情況。你唔好只係望住個總數,要逐項睇。例如,你發現「Images」嗰一行嘅「SIZE」同「RECLAIMABLE」個數值,每隔一兩個禮拜就越嚟越接近,即係話你積存咗大量冇用嘅舊 鏡像,呢個就係一個明顯嘅上升趨勢,提醒你要執行 docker image prune 嚟做 鏡像清理。又或者,「Containers」嘅「SIZE」異常地大,可能代表有啲 容器 嘅日誌檔 (log files) 冇設定輪替,瘋狂寫入,食咗你大量 磁碟。呢啲趨勢唔係一次過指令可以解決,而係要你調整配置,例如設定 log driver 嘅 max-size。

要將監控自動化同視覺化,先至可以真正掌握趨勢。對於進階用家,我哋可以將 docker system df 嘅結果,用 script 定期 (例如每日) 抓取,然後將數據送去監控系統,好似 Prometheus 配合 Grafana 咁,畫出圖表。你可以設定幾個關鍵指標嚟監察:總 可回收空間 嘅變化曲線、活躍 映像檔 同懸空 (dangling) 映像檔 嘅比例、數據卷空間佔用 增長率。當你喺 Grafana dashboard 見到代表「懸空映像檔大小」條線持續向上,而「活躍映像檔大小」條線持平,你就知道係時候要執行 docker system prune 或者更精準嘅 docker image prune -a 嚟做 資源回收。呢種 系統優化 方法,由被動清理變成主動 容器管理,預防重於治療。

另外,監控趨勢仲可以幫你規劃 雲端儲存 成本同埋制定內部政策。假設你發現每個月 映像檔 佔用嘅 儲存空間 會固定增長 10GB,咁你就可以預早同團隊溝通,或者檢視 Dockerfile 嘅寫法係咪可以更精簡,減少構建層數。又或者,你可以設定一個自動化規則:當非活躍 容器 所佔 磁盤空間 超過某個阈值,就自動觸發 docker container prune。記住,Docker daemon 本身唔會自動幫你做呢啲 清理,所有 容器存儲存儲優化 都係要靠你設定同監控。將 docker system df 呢個 Docker CLI 工具,融入你日常嘅維運觀察清單,定期檢視 硬碟使用量 嘅變化,先至係保持 Docker 系統 輕盈同高效嘅不二法門。

docker system df - 硬碟空間

About硬碟空間Professional illustrations

避免空間爆滿小技巧

好喇,各位 DevOps 兄弟同埋雲端玩家,而家就同大家傾下點樣用 Docker System 命令避免空間爆滿 呢個頭痕問題。我知好多時大家用 Docker 玩得起勁,狂 build 映像檔,起完又棄置啲 容器,日子有功,部 伺服器 或者你部開發機嘅 硬碟空間 就會無聲無息咁被食清光,彈出「no space left on device」呢句令人崩潰嘅訊息。其實,Docker daemon 背後係會積聚大量「垃圾」,例如係停止咗嘅舊容器、冇用嘅 數據卷、甚至係一堆冇標籤 (dangling) 嘅 鏡像,佢哋會霸住你寶貴嘅 磁碟空間

首先,你一定要識得用 docker system df 呢個 指令 做你嘅第一道防線。呢個命令就好似一個 磁碟使用情況 報告專員,會清清楚楚咁列明三樣嘢嘅空間佔用:映像檔 (Images)容器 (Containers)、同埋 數據卷 (Volumes)。最正係佢會話俾你知有幾多係「可回收空間」,即係話俾你聽有幾多垃圾可以即刻清走。例如你見到「RECLAIMABLE」個 percentage 好高,咁你就知道係時候要做 資源回收 喇。呢個係 系統優化 嘅第一步,定期行一睇,對你個 磁盤空間 嘅健康狀況就一目了然。

知道咗問題所在,跟住落嚟就係實際 清理 行動。最直接粗暴但又好有效嘅方法,就係用 docker system prune。喺 Docker CLI 打呢個指令,佢會一次過幫你清走所有停止咗嘅容器、所有冇用嘅 網絡、同埋所有 dangling 嘅映像檔(即係冇標籤或者冇任何容器引用緊嘅舊 鏡像)。如果你夠狠心,可以加個 -a 旗標,連所有冇被容器使用緊嘅映像檔都刪埋;再加個 --volumes,就會連帶清理埋冇用嘅 數據卷,呢下係 儲存空間 嘅大解放。不過要提提你,用 --volumes 前真係要 double-check,因為數據卷入面嘅資料係永久性,刪咗就救唔返㗎喇。呢個 容器清理 嘅過程,對於 存儲優化 嚟講係非常核心。

當然,有時我哋唔想咁一刀切,想有啲細緻嘅 容器管理Docker 亦提供咗一系列針對性嘅 prune 指令。例如你想淨係清理停止咗嘅容器,可以用 docker container prune;想集中清理冇用嘅映像檔,就用 docker image prune。呢種方法好處係俾你更多自主權,逐樣 資源回收,避免誤刪重要嘢。尤其係當你個 Dockerfile 經常修改,不斷 build 出新 鏡像 做測試時,舊版本嘅 映像檔 就會積存得好快,定期用 docker image prune -a 就可以幫你釋放大量 硬碟使用量

除咗依賴 Docker 系統 嘅內建指令,我哋平時養成良好習慣都好緊要。例如,建立容器時盡量用 --rm 旗標,等個容器一停止運行就自動刪除,唔會留低一堆「僵屍容器」。又或者,定期檢視同管理你嘅 映像檔,避免係咁 pull 最新版本但又唔刪舊版,搞到同一個應用有十幾個唔同 tag 嘅 鏡像 喺度。另外,對於啲大型應用或者數據,可以考慮將日誌、緩存呢類經常增長嘅資料,透過設定引導去 雲端儲存 或者外部儲存裝置,而唔好全部塞喺 容器 內部,咁樣可以從根源上減輕 磁碟 嘅壓力。

總括嚟講,要 避免空間爆滿,關鍵在於「監控」同「紀律」。用 docker system df 做定期 磁碟空間 體檢,再用 docker system prune 及其系列指令做針對性 系統優化容器清理,再配合日常使用嘅好習慣,咁就唔會俾 Docker儲存空間 問題殺到個措手不及,令你嘅開發或生產環境保持順暢。記住,磁盤空間 係有限資源,主動管理好過等到爆滿先嚟救火呀。

docker system df - 磁盤空間

About磁盤空間Professional illustrations

進階儲存驅動分析

好啦,講完基本嘅空間檢視,我哋要深入啲,拆解下 Docker 背後嘅儲存驅動同點樣影響「docker system df」嘅結果。呢部分係進階啲,但搞明嘅話,你對 Docker 系統管理嘅功力會即刻升呢。所謂「儲存驅動」,你可以理解為 Docker daemon 點樣喺你部伺服器嘅磁碟上,實際擺放同管理嗰啲容器、鏡像同數據卷嘅底層技術。唔同嘅驅動(例如 overlay2、devicemapper、aufs 等)佢哋嘅磁碟空間使用效率同「可回收空間」嘅計算方式都會有微妙差別。用「docker system df」睇到嘅總佔用量,其實就係呢個儲存驅動運作後嘅結果。

點解要關心儲存驅動?因為佢直接影響你硬碟空間嘅「健康狀況」同清理嘅有效性。舉個例,如果你用緊 overlay2(而家多數 Linux 發行版嘅預設),佢採用寫時複製(Copy-on-Write)嘅策略,好處係慳位同高效。但係,當你不停咁建立同刪除容器,尤其係用 Dockerfile build 鏡像嘅過程中,可能會產生一啲「懸空」嘅鏡像層。呢啲層喺「docker system df」嘅「Reclaimable」欄目會顯示為可回收,但實際要清走佢哋,就要靠「docker system prune」系列指令。儲存驅動嘅設計,會決定呢啲懸空層嘅多寡同清理得乾唔乾淨。如果你發現明明清完,點解磁碟空間仲係好似有啲「虛耗」,好可能同驅動嘅底層處理機制有關。

咁點樣進行進階分析呢?單睇「docker system df」嘅總數係唔夠嘅。你要結合其他 Docker CLI 指令一齊睇。例如,你可以用「docker image ls」配合「–digests」同「–filter dangling=true」去專門睇下有幾多冇用嘅中間鏡像層。又或者,用「docker volume ls」去檢查係咪有啲數據卷已經冇容器用緊,但仲霸住雲端儲存或者本地硬碟空間。進階嘅儲存驅動分析,就係要將「docker system df」當成一個總儀表板,然後逐個細項去深挖。例如,當你見到「Images」類別佔用特大,你就要諗,係咪有太多唔同 tag 但底層相同嘅鏡像?定係 build cache 積存得太犀利?呢啲都係儲存空間優化嘅關鍵。

對於系統管理員嚟講,定期做呢種進階分析係必須嘅。尤其係喺 CI/CD 環境或者多開發者共用嘅 Docker 主機上,容器同鏡像嘅生滅速度好快。你可以設定一個自動化腳本,定期行「docker system df –verbose」拎詳細數據,再配合「docker system prune -a –volumes –filter “until=168h”」呢類指令(假設清除一星期前嘅嘢),去做有條件嘅自動清理。但要小心,prune 指令會清走嘢,執行前一定要確認好,尤其係數據卷,清錯咗就好麻煩。記住,儲存驅動同你嘅清理策略要配合,先可以做到持久嘅系統優化,確保你嘅伺服器磁碟唔會無端端爆滿。

Frequently Asked Questions

什麼是 docker system df?

`docker system df` 係一個 Docker CLI 指令,用嚟顯示 Docker 系統嘅磁碟空間使用情況報告,幫助你快速瞭解映像、容器、同數據卷等佔用嘅空間。佢可以幫你識別邊啲資源浪費咗空間,方便進行清理。

  • 顯示類別**:分別列出映像、容器、本地數據卷同構建緩存嘅空間使用量。
  • 詳細模式**:使用 `-v` 參數可以顯示每個資源(例如具體邊個映像)嘅詳細空間佔用。
  • 總計資訊**:提供總使用空間、可回收空間同總空間嘅摘要,一目瞭然。

什麼是 Docker 系統?

Docker 系統係指由 Docker 守護進程管理嘅一系列核心資源同組件嘅總稱,包括映像、容器、網絡、數據卷同構建緩存。理解呢個系統對於有效管理同優化開發同部署環境至關重要。

  • 核心組件**:主要包括 Docker 映像(應用模板)、容器(運行實例)、網絡(容器通訊)同數據卷(持久化數據)。
  • 管理指令**:提供如 `docker system df`、`docker system prune` 等指令用於監控同維護。
  • 資源互動**:各組件相互關聯,例如刪除映像可能會影響基於佢嘅容器,需要系統性管理。

如何從 Docker 容器存取檔案系統?

要從 Docker 容器存取檔案系統,主要可以透過掛載主機目錄(Bind Mounts)或使用 Docker 數據卷(Volumes)嚟實現。呢種方法常用於開發時同步代碼或容器需要持久化保存數據嘅情況。

  • Bind Mounts**:使用 `-v` 或 `--mount` 參數,將主機嘅特定目錄直接映射到容器內,例如 `-v /host/path:/container/path`。
  • Docker Volumes**:創建同管理獨立於容器生命週期嘅數據卷,數據更易備份同遷移。
  • 容器內操作**:可以使用 `docker exec -it <容器名> /bin/bash` 進入運行中嘅容器,直接檢查其檔案系統。

docker system prune 會刪除所有嘢嗎?

唔會,`docker system prune` 默認只會刪除已停止嘅容器、未被任何容器使用嘅網絡,同懸空(dangling)嘅映像。為咗安全起見,佢唔會刪除正在運行嘅容器或被標記嘅映像。

  • 默認範圍**:清除已停止容器、懸空映像同未被使用嘅網絡。
  • 危險選項**:使用 `-a` 參數(`--all`)會額外刪除所有未被容器使用嘅映像,呢個操作要小心。
  • 數據卷**:默認唔會刪除數據卷,必須使用 `--volumes` 標誌先會清理,因為數據卷通常包含重要數據。

df 在 Linux 中係咩意思?

在 Linux 系統中,`df` 係「disk filesystem」或「disk free」嘅縮寫,係一個標準指令,用嚟報告檔案系統嘅磁碟空間使用情況。Docker 借鑒咗呢個概念,`docker system df` 指令就係專門用於報告 Docker 相關資源嘅空間使用。

  • 原生功能**:Linux 嘅 `df -h` 指令以易讀格式顯示所有掛載點嘅空間使用率。
  • Docker 延伸**:Docker 將呢個概念應用於其管理嘅虛擬化資源,提供專屬嘅空間報告。
  • 核心目的**:兩者嘅核心目的相同,都係幫助系統管理員監控同管理磁碟空間,避免空間耗盡。

Docker 到 2026 年仲多人用嗎?

係,到 2026 年 Docker 依然被廣泛使用,特別係在容器化開發、微服務架構同 CI/CD 流水線中扮演基礎角色。雖然 Kubernetes 等編排工具成為生產環境標準,但 Docker 作為容器運行時同開發工具鏈嘅重要一環,地位依然穩固。

  • 開發者體驗**:Docker Desktop 同 Docker Compose 繼續係本地開發同測試嘅首選工具,易用性高。
  • 生態整合**:Docker 映像格式(OCI)已成為行業標準,確保其持續相關性。
  • 雲原生基礎**:許多雲服務同 Kubernetes 底層仍然支援或兼容 Docker 容器運行時。

如何解讀 docker system df 嘅輸出結果?

`docker system df` 嘅輸出以表格形式顯示,主要分為四類:映像、容器、數據卷同構建緩存。你需要關注「SIZE」(總大小)同「RECLAIMABLE」(可回收空間)呢兩欄,可回收空間高表示有唔少資源可以安全清理。

  • TYPE 欄**:指明資源類型,如 IMAGES、CONTAINERS、VOLUMES、BUILD CACHE。
  • RECLAIMABLE**:表示呢類資源中可以透過清理指令(如 `prune`)安全釋放嘅空間大小。
  • 詳細檢視**:使用 `docker system df -v` 可以睇到每個具體資源(例如某個映像ID)嘅佔用情況,方便精準清理。

使用 docker system df 同相關清理指令時要注意啲咩安全問題?

使用 `docker system df` 評估後進行清理時,首要安全考慮係避免誤刪正在使用或重要嘅資源。特別係數據卷同被標記嘅映像,可能包含應用程式數據或重要版本,刪除前必須確認。

  • 備份先行**:清理前,尤其係涉及數據卷時,應確保重要數據已經備份。
  • 確認依賴**:刪除映像前,用 `docker image inspect` 或檢查係咪有容器依賴佢,避免破壞運行中服務。
  • 使用乾跑模式**:部分清理指令支援 `--dry-run` 參數,可以先模擬執行,預覽將會刪除嘅項目,確認無誤後再實際執行。

點樣定期自動清理 Docker 系統空間?

你可以透過設定系統定時任務(Cron Job)或使用 Docker 內置嘅資源清理策略嚟實現自動化空間管理。定期自動清理可以有效防止磁碟空間被無用嘅 Docker 資源耗盡。

  • Cron Job 指令**:在 crontab 中加入例如 `0 3 * * * docker system prune -af --filter "until=168h"`,每週凌晨3點自動清理7日以上嘅無用資源。
  • Docker 內置**:可以配置 Docker 守護進程(daemon.json)嘅 `builder` 或 `containerd` 設置,自動清理構建緩存。
  • 謹慎自動化**:自動化清理時應排除數據卷(除非特別指定),並確保唔會影響到開發或測試中嘅重要容器。

docker system df 顯示嘅「Build Cache」係咩?可以點清理?

「Build Cache」係指使用 `docker build` 構建映像時產生嘅中間層緩存,用嚟加速後續構建。但累積太多會佔用大量空間,尤其係在頻繁構建嘅開發環境中。

  • 來源**:主要嚟自 Dockerfile 中每一層指令(如 RUN、COPY)構建時產生嘅緩存層。
  • 專項清理**:可以使用 `docker builder prune` 指令專門清理構建緩存,比通用 `prune` 更精準。
  • 預防累積**:在構建時使用 `--no-cache` 參數可以避免使用緩存,或者定期手動清理以釋放空間。