解决了“解决使用win10 docker 后C盘存储过大的问题“的问题
我使用的win10 在开启了wsl2之后,使用docker-desktop用“use the WSL2 based engine” 选项, 使用起来如丝般畅滑。但是,,随着各种docker镜像的拉取,对应所占的磁盘空间也越来越多,在网上找了一个项目,并拉去了所需的镜像后,c盘几乎被占满,于是经过网上各方搜索,找到了可行的转移docker镜像的方法,记录如下。
环境
win 10 并开启linux子系统
docker desktop community 2.5.0.1(49550)
wsl下的虚拟机如下如所示,
NAME STATE VERSION
- Ubuntu-18.04 Stopped 2
- docker-desktop-data Stopped 2
- docker-desktop Stopped 2

原问题
c盘剩余空间不足,使用SpaceSniffer工具查看后发现,
C:\Users\xxxxx\AppData\Local\Docker\wsl\data\ext4.vhdx
C:\Users\xxxxx\AppData\Local\Docker\wsl\distro\ext4.vhdx
上述两个文件占据了大量的磁盘空间,其中,data\ext4.vhdx是docker-desktop-data镜像所使用的空间
问题解决
使用wsl的命令即可
1、先关闭所有wsl下的虚拟机
2、导出wsl子系统镜像:
wsl --export docker-desktop docker-desktop.tar
wsl --export docker-desktop-data docker-desktop-data.tar
其中,导出docker-desktop-data的操作可能会非常耗时,我未导出前在c盘所占的空间为19GB左右,导出时间超过了半个小时(过程中CPU使用率不搞,D盘使用率100%),需要耐心等待。
3、删除现有的wsl子系统:
wsl --unregister docker-desktop
wsl --unregister docker-desktop-data
4、重新创建wsl子系统:
wsl --import docker-desktop d:\你想要存放的地址 docker-desktop.tar
wsl --import docker-desktop-data d:\你想要存放的地址 docker-desktop-data.tar
其中,导入docker-desktop-data的时候也比较耗时,我也用了半个小时左右。
上述操作参考了Docker Desktop(WSL2)修改镜像存储位置
5、重启wsl
正常情况经过上面的操作之后,wsl以及docker就可以正常使用
但是新问题产生了。
新问题
我只转移了docker的两个镜像的位置,并没有转移ubuntu 18.04 的镜像位置,但是,经过实际操作,发现我的电脑上的终端中没有ubuntu的选项了,骂骂咧咧的多次尝试,发现还是不行。
新问题的解决
尝试了两种方法,
- 重启电脑 -> 无效,仍然没有ubuntu,wsl命令仍然无反应。
- 在window的“启用或关闭windows功能”里把wsl关了,然后重启,然后在把wsl开启,然后重启,然后就正常了。
6、正常使用即可。
结论
1、使用一系列的命令转移docker使用的镜像位置
2、在“启用或关闭windows功能”里把wsl关掉,重启,再打开,就可以了。
Loading Comments...