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


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

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

7、重新導(dǎo)入備份的'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命令查看,皆已恢復(fù)。

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