默認情況下,Docker Desktop for Window會創(chuàng)建如下兩個發(fā)行版(distro):
docker-desktop:用于存放程序
docker-desktop-data:用于存放鏡像
如果訪問%LOCALAPPDATA%/Docker/wsl目錄,就可以看到兩個文件夾,同時每個文件夾中都會有一個vhdx文件。


'data/ext4.vhdx'被docker-desktop-data 發(fā)行版使用;
'distro/ext4.vhdx'被 docker-desktop 發(fā)行版使用;
docker-desktop-data 是被用來存儲docker images 以及相關的數(shù)據(jù)。因此,它的大小會隨著使用逐步增長,因此導致系統(tǒng)盤空間不足。
解決方法
1、刪除所有容器
ps: 可以試試命令
docker rm `docker ps -a -q`
①查看所有容器:
cmd運行docker ps -a
②刪除已部署容器
cmd運行docker rm 容器id或者直接打開docker 在Containers/Apps里面刪除所有容器
③再次檢查容器是否刪除干凈
docker ps -a
2、退出Docker Desktop
3、使用cmd關閉所有發(fā)行版
wsl --shutdown
4、檢查是否所有發(fā)行版都已經(jīng)關閉
wsl --list --verbose
如下狀態(tài)都為Stopped則都已關閉

5、備份已有image數(shù)據(jù)
①創(chuàng)建文件夾,目錄根據(jù)自己實際情況指定。(本人使用D:\docker)。
②通過下面命令,將已有的數(shù)據(jù),以tar格式備份已有數(shù)據(jù)到指定目錄(D:\docker)
wsl --export docker-desktop-data D:\docker\docker-desktop-data.tar
wsl --export docker-desktop D:\docker\docker-desktop.tar
'docker-desktop-data'與'docker-desktop'就是第4步中,列舉出來的用于存放鏡像和程序的發(fā)行版本。
6、注銷當前的發(fā)行版
wsl --unregister docker-desktop-data
wsl --unregister docker-desktop
該命令執(zhí)行完成之后,再次使用wsl --list --verbose命令查看,'docker-desktop-data'與'docker-desktop'就已經(jīng)不在了。

7、重新導入備份的'docker-desktop-data'與'docker-desktop'
wsl --import docker-desktop-data D:\docker\data D:\docker\docker-desktop-data.tar --version 2
wsl --import docker-desktop D:\docker\docker-desktop D:\docker\docker-desktop.tar --version 2
命令執(zhí)行完成后使用wsl --list --verbose命令查看,皆已恢復。

'D:\docker\data'與'D:\docker\docker-desktop'即指定vhdx新的放置目錄。
'D:\docker\docker-desktop-data.tar'與'D:\docker\docker-desktop.tar'指定第5步中備份的數(shù)據(jù)
8、重新運行Docker Desktop
Docker Desktop 運行成功之后,查看新目錄中的vhdx的修改時間,如果修改時間是最新時間,就說明配置成功。
