在整理硬碟的時候發現 Docker 資料夾中的 windowsfilter 意外的龐大,佔據主硬碟接近 1/3 的空間不說還以驚人的方式成長,且刪除 windowsfilter 時還會跳出錯誤 拒絕存取資料夾 : 您需具有執行此動作的權限 ,這篇就來分享如何解決這問題,若有謬誤或是更快的方法歡迎留言一起討論。
解決方案
使用 WizTree 硬碟分析工具分析硬碟檔案,發現 Docker 資料夾佔據 30G 的大小,公司筆電主硬碟僅有 128 G 相當吃重,Docker for windows 預設安裝 image 檔案會儲存在 image 與 windowsfilter 目錄底下,進到資料夾底下針對個別檔案進行刪除也無法進行,都會跳出無法存取的錯誤訊息,
針對此問題以下介紹兩種解決方式
Reset to factory defaults
重置 Docker 設定為出廠的預設值,自己在本機環境測試的 Docker image 都是可以重建所以將 Docker 重置對我來說影響不大,設定方式如下
Docker > Settings > Reset > Restart Docker Desktop
按下後會跳出視窗提醒此動作會刪除 image 及還原 Docker 所有設定
按下確定後會進行還原設定的動作,會需要跑一段時間,執行完畢後還會跳出首次進 Docker 歡迎的畫面 (覺得好笑),在使用硬碟分析工具掃描一次,Docker 資料夾已還原為出廠設定佔用
docker-ci-zap
如果不希望使用環境的 Docker 設定還原,也可以考慮使用工具進行刪除 windowsfilter 資料夾的動作,在 [Windows] windowsfilter folder impossible to delete #26873 討論串中看到可以工具刪除的方式,使用前需要先編譯後才可以使用,工具相關資訊如下
下載 : https://github.com/jhowardmsft/docker-ci-zap,
使用 : 輸入下列指令進行強行刪除的動作
.\docker-ci-zap.exe -folder "C:\ProgramData\docker"如果對於工具或是細節有興趣,也可以看討論串的內容了解更多
後記
沒想到 Docker 的 windowsfilter 竟佔用硬碟這麼大的空間,且刪除時還無法直接刪除也讓我很意外,最後還是找到解決方法解救了硬碟空間,以上分享兩種 Docker 刪除 windowsfilter 解決方案,各位開發者可以依據需要來選擇使用,Happy Coding :)
參考
[Windows] windowsfilter folder impossible to delete #26873
docker keeps taking more storage space under C:\ProgramData\docker\windowsfilter with no way to reclaim it since prune commands not available
解決無法刪除 dcoker 在 Windows 下的 image 預設目錄 windowsfilter
0 意見:
張貼留言