Windows 上修改 docker 的镜像文件存储位置(修改 WSL 文件映射)

34 篇文章 3 订阅
12 篇文章 0 订阅

1、起因

一开始在 Windows 上安装了 docker 后,它默认是把镜像拉取保存到 C:\Users\<你当前用户>\AppData\Local\Docker\wsl\data\ 路径的 ext4.vhdx 文件下,当拉取的镜像越来越大时,C 盘比较小的同学就 hold 不住了,怎么在 Windows 上修改 docker 的镜像文件存储位置也就变的迫在眉睫。

2、修改

点击安装 Docker Desktop 后启动,会提示安装 WSL,如果不安装,启动不了 docker engine 服务。

因为目前的 docker 依附 WSL 来进行文件映射,所以我们需要通过 wsl 来修改 docker 的文件映射(可理解为文件挂载)路径就行了。

现在我们安装的都是WSL2,WSL2 模式下 docker-desktop-data 磁盘映像通常位于以下位置: C:\Users\<你当前用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx

按照以下步骤将其重新定位到其他驱动器 or 目录,并保留所有现有的 Docker 数据。

2.1 关闭 Docker Desktop

首先,在任务栏右下角右键单击 Docker Desktop 图标关闭 Docker 桌面,选择退出 Docker 桌面,等一会 Docker 图标没了之后,就证明 Docker 完全关闭了,然后,打开命令提示符:

wsl --list -v

我们就能能够看到,确保两个状态都已停止。

在这里插入图片描述

默认情况下,Docker Desktop for Window 会创建如下两个发行版(distro)
C:\Users<你当前用户名>\AppData\Local\Docker\wsl
docker-desktop (对应distro/ext4.vhdx)
docker-desktop-data (对应data/ext4.vhdx)
官方说明提示:vhdx文件最大支持256G,超出大小会有异常。

2.2 备份镜像

将 docker-desktop-data 导出到文件中(备份 image 及相关文件),我是把他保存到 D 盘下,用的如下命令,你们可以根据自己需要修改路径:

wsl --export docker-desktop-data "D:\\docker-desktop-data.tar"

2.3 WSL 取消注册 docker-desktop-data

从 wsl 取消注册 docker-desktop-data,需注意 C:\Users\<你当前用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx 文件将被自动删除,命令如下:

wsl --unregister docker-desktop-data

2.4 镜像数据导回 WSL 并挂载到新路径

将导出的 docker-desktop-data 再导入回 wsl,并设置我们想要的路径,即新的镜像及各种 docker 使用的文件的挂载目录,我这里设置到 D:\docker\wsl,命令如下:

wsl --import docker-desktop-data "D:\\docker\\wsl" "D:\\docker-desktop-data.tar" --version 2

命令执行完毕,就能再目录下看到文件了,这时次启动 Docker Desktop,可以正常工作了。

3、验证

修改前记录 C:\Users\<你当前用户名>\AppData\Local\Docker\wsl 目录文件大小,修改后再看一下该路径文件大小,可以看到变化(前提是还未修改前有拉取镜像,且镜像比较大),然后 docker pull 任意一个镜像(我下载了Ubuntu),再看 C:\Users\<你当前用户名>\AppData\Local\Docker\wsl 目录无变化,而 D:\\docker\\wsl (你修改的镜像挂载目录)增大。

最后,如果在验证后一切没有问题,则可以删除 D:\docker-desktop-data.tar (前面备份的镜像文件),记住可不是 ext4.vhdx 文件,这可是重要文件,删除了 Docker Desktop 就打不开了。

4、附录

Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题 可参考:Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题

  • 16
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

跳舞的皮埃尔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值