【填坑】在windows系统下安装Docker Desktop后迁移镜像位置

  • 作者: 凯哥Java(公众号:凯哥Java)
  • Docker
  • 时间:2022-12-02 18:08
  • 4392人已阅读
简介 大家后,本文是为了填前两天写的一篇文章《【图文教程】Windows11下安装DockerDesktop》。这个文章有个坑,当时凯哥忘了写上。今天就把这个坑给填补上。什么坑呢?就是默认安装的镜像是在C盘下的。先来看看看迁移之前C盘情况:先说明:Cpan本来还有一二十个GB的空间,然后运行docker之后,看到C盘磁盘空间刷刷的往下掉,才突然想起安装WSL的时候,有个坑忘了填了。事情起因:在windo

🔔🔔好消息!好消息!🔔🔔

 如果您需要注册ChatGPT,想要升级ChatGPT4。凯哥可以代注册ChatGPT账号代升级ChatGPT4

有需要的朋友👉:微信号 kaigejava2022

大家好,本文是为了填前两天写的一篇文章《【图文教程】Windows11下安装Docker Desktop》。这篇文章有个坑,当时凯哥忘了写上。今天就把这个坑给填补上。什么坑呢?就是默认安装的镜像是在C盘下的。先来看看看迁移之前C盘情况:

cb6e020b13ae12c207748326efbc671e.png

先说明:C盘本来还有一二十个GB的空间,然后运行docker之后,看到C盘磁盘空间刷刷的往下掉,才突然想起安装WSL的时候,有个坑忘了填了。

事情起因:

在windows下安装Docker Desktop之后,默认是安装在C盘的,默认的镜像文件位置是在C盘下的用户名下的\AppData\Local\Docker\wsl

比如凯哥的:

C:\Users\kaigejava\AppData\Local\Docker\wsl

下面有两个文件夹。

ca2952f68788b891a497f3f00bc32c18.png

我们来看看现在这两个文件夹的大小:

1e7baf3f903510d136cdd72ec49f3e26.png

竟然占用了10GB的磁盘空间,在对C盘来说,太浪费了。我们要这两个文件夹迁移到其他盘符中,具体操作如下:

一:将镜像导出

罗列出现在在使用WSL的。在CMD命令窗口执行

wsl --list -v

0ceb3ca67d5686cecbc7bed439238d35.png

可以看到有两个docker相关的在运行。我们需要先关闭。

1:在电脑桌面的右下角点击Docker Desktop图标退出当前应用;

2:关闭WSL。执行命令是: wsl --shutdown

3:查看当前WSL运行情况。使用的命令还是:wsl --list -v.我们可以看到 STATE都已经是Stopped的了。如下图:

dd7ccf345800204c2a1dc9d734188c63.png

4:导出镜像并压缩为tar.注意:导出的路径要提前创建好,不然执行命令会报错的。执行命令公式:

wsl --export docker-desktop-data 导出后存放的文件路径

比如凯哥导出后存放文件目录为:E:\dockervolumepath\

所以凯哥导出doceker-desktop、docker-desktop-data及ubuntu命令如下:

wsl --export docker-desktop E:\dockervolumepath\docker-desktop.tar 
wsl --export Ubuntu E:\dockervolumepath\Ubuntu.tar
wsl --export docker-desktop-data E:\dockervolumepath\docker-desktop-data.tar

说明:如果文件比较大的话,导出需要耗费一些时间。耐心等待导出完成即可。

8f098d2fc20184f78ecece6e5b3f1097.png

二:注销原来的docker镜像相关的。使用命令公式:

wsl --unregister 需要注销的

套用公式,可以得到凯哥需要注销的命令为:

#注销原来的 Docker 镜像
wsl --unregister docker-desktop-data
wsl --unregister Ubuntu
wsl --unregister docker-desktop

92e2cb994192b0bbd6550edf858a01b5.png

三条命令都执行完成之后,就注销了。注销之后,我们看看C盘磁盘空间:

8e022ca5dfd22c27e4c71e3b9ed2be6a.png

发现C盘少了10G左右。

三:我们将导出的Docker镜像在导入到wsl,并设置挂载的文件目录

使用的命令公式为:

wsl --import <分配的名字> <本地保存路径><文件名>

套用公式,我们可以得到凯哥需要导入的三条命令:

wsl --import docker-desktop E:\dockervolumepath  E:\dockervolumepath\docker-desktop.tar 

wsl --import docker-desktop-data E:\dockervolumepath\docker-desktop-data  E:\dockervolumepath\docker-desktop-data\docker-desktop-data.tar

需要注意:这两个不能在同一个文件夹中。如果在同一个文件夹中,在执行完一条命令后,接着执行第二条命令会提示:提供的安装位置已经在使用中。 会有如下图的错误

211612a3c4b1b38ebba4b55d3a039ebe.png

其实这个也很好理解。因为在两个文件在C盘的时候,就是两个不同的文件夹。所以,在这里,我们也使用两个不同文件夹来区分就可以了。

执行完成之后,我们使用wsl --list -v,查看是否成功。如下图:

fdb714e62cf4647754de6ba31d3d143b.png

可以看到,都已经导入成功。接下来,重启Docker Desktop即可。

TopTop