记一次win 10 下wsl2 机制 的docker 镜像文件转移过程

解决了“解决使用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
    记一次win 10 下wsl2 机制 的docker 镜像文件转移过程_第1张图片

原问题

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下的虚拟机

wsl --shutdown

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关掉,重启,再打开,就可以了。

你可能感兴趣的:(折腾记录,docker,ubuntu,windows,10)