最近在 windows 10 系统上安装了 docker,随手 pull 了几个镜像后,发现 C 盘空间锐减(少了 1-2 个 G),心想其默认镜像存储空间铁定在 C 盘了,故得想办法将其揪出来,并修改一下默认路径。

查了好多资料,基本都表示 windows 版的 docker 是基于 hyper-v 虚拟机运行的,需要去修改 hyper-v 虚拟机的一个虚拟磁盘路径,但我找了一下发现我甚至连 hyper-v 虚拟机都没有创建。。。那是怎么运行起来 docker 的呢?

后来了解到我的 docker 版本是 2.3.0.4,这一版本已经不依赖于 hyper-v 了,而采用了 WSL 2 这种我没听说过的东西。

用 TreeSizeFree 软件扫描了一下 C 盘之后在 AppData 下面找到了一个很大的 Docker 文件夹,文件夹内部文件结构大概是:Docker/wsl/data/ext4.vhdx

这个 ext4.vhdx 就是一个磁盘映像文件,非常大。下面是将其转移的操作步骤:

  1. 停止 docker
  2. 关闭 WSL:wsl --shutdown
  3. 导出数据到随便哪个盘:wsl --export docker-desktop-data F:\docker-desktop-data.tar
  4. 注销 docker-desktop-data:wsl --unregister docker-desktop-data
  5. 转移数据到你想要的位置:wsl --import docker-desktop-data F:\docker\wsl\docker-desktop-data\ F:\docker-desktop-data.tar --version 2