這邊記錄一下 Windows 版的 Docker 的儲存空間的設定、以及處理。
首先,Windows 版的 Docker 預設的資料儲存路徑,應該是在 C:\ProgramData\Docker 這個位置;其中,設定檔案是在「config」這個路徑下。
而由於 Docker 預設也會將 Docker image、volume 等資料都儲存在這邊,所以如果系統磁碟不夠大的話,其實有的時候可能會被 Docker 的相關檔案撐爆。
修改 Docker 資料儲存路徑
如果要修改 Docker 的資料儲存位置的話,則需要去修改「config」這個目錄下的「daemon.json」檔。
修改方式,就是加入一個「data-root」的項目,指定要使用的路徑就可以了。
最簡單的修改方法,就是在 Docker 的圖形介面中,進入「Settings」的「Docker Engine」的項目,直接修改文字框內的設定檔內容。
像上面的例子,就是告訴 Docker 要把資料儲存在「d:\docker」這個位置。
修改好了之後,只要按下「Apply & Restart」、等待 Docker daemon 重新啟動就可以了。
強制刪除 Docker 的資料
Docker 的資料夾基本上會被設定很奇怪的權限,所以直接用檔案總管並沒有辦法直接進去處理檔案。
而其中,用來儲存 Docker image 的「windowsfilter」資料夾,其結構本身就較為複雜(裡面可能有 Symbolic link 或 junction),導致他基本上難以用正常的操作來把資料夾給刪除。
相關的問題,也可以參考《[Windows] windowsfilter folder impossible to delete》這個 issue。
而目前看來比較方便的解法,應該是透過「docker-ci-zap」這個程式,來把資料刪除了。
他的連結是:https://github.com/moby/docker-ci-zap,老實說,空的有點可怕。
而下載了「docker-ci-zap.exe」這個預先編譯好的執行檔案,就可以透過這個程式,來刪除相關的檔案了~
要執行的話請以管理者權限執行:
docker-ci-zap.exe -folder "C:\ProgramData\docker\windowsfilter"
不過也要注意,這個小程式基本上是會去刪除整個資料夾,就算不是 Docker 的也會去處理,而且不會做額外的確認;所以使用的時候請確認資料夾是正確的,以免誤刪其他資料。
[…] Heresy 本來想把 Windows Docker 的資料夾整個搬到 Dev Drive 上(方法參考)、看看處理 image […]
讚讚