Docker的镜像文件缩容 & 存储位置修改

小白初学Docker时,反反复复下载和修改了很多镜像,导致镜像文件越来越大。

当C盘爆红了才搜罗解决办法,通过一下大佬的方法直接将C盘清出50G+!

1. 删除多余镜像和容器,并释放磁盘空间

空间不够了第一反应就是删掉没用的东西。

但删除过后发现 WSL 挂载目录的虚拟磁盘大小没有变化。

原因:不同于 WSL1,WSL2 本质上是虚拟机,所以 Windows 会自动创建 vhdx 后缀的虚拟磁盘文件作为存储。这个 vhdx 后缀的虚拟磁盘文件特点是可以自动扩容,但是一般不会自动缩容。一旦有很多文件把它“撑大”,即使把这些文件删除它也不会自动“缩小”。所以删除文件后还需要我们手动进行压缩才能释放磁盘空间。

解决方法

1.1 找到要压缩的虚拟磁盘文件

如果你没更改挂载磁盘的位置,那默认位置在

C:\Users\ <你当前用户名> \AppData\Local\Docker\wsl\data\ext4.vhdx

1.2 关闭 Docker Desktop

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

 wsl --list -v

确保两个状态都已停止,如下图所示
在这里插入图片描述

如果这一步没关闭也没问题,最后所有操作结束后,重启 Docker Desktop 即可

1.3 压缩虚拟磁盘文件

继续在PowerShell中执行

# 关闭 WSL2 中的 linux distributions
wsl --shutdown
# 运行管理计算机的驱动器的 DiskPart 命令
diskpart

会新打开一个叫 DiskPart 的命令窗口,如下图:

在新打开的 DiskPart 命令窗口中执行:

# 选择虚拟磁盘文件
select vdisk file="步骤1.1虚拟磁盘文件的路径"
# 压缩文件
compact vdisk
# 压缩完毕后卸载磁盘
detach vdisk

上述操作执行完毕,WSL2 删除文件后空出来的磁盘空间就被释放了,可以去虚拟磁盘文件的路径看到 ext4.vhdx 文件大小已经减小。最后打开 Docker Desktop 可以看到原来镜像还在,成功解决问题。

2. 修改镜像文件存储位置

如果C盘还是爆红,那还是将Docker镜像文件移出C盘吧。

前面说过,WSL2模式下docker-desktop-data vm磁盘映像通常位于以下位置:

C:\Users\ <你当前用户名> \AppData\Local\Docker\wsl\data\ext4.vhdx

通过一下步骤可将其重新定位到其他目录,并保留所有现有的Docker数据

2.1 关闭 Docker Desktop

和1.2操作一样,右键单击Docker Desktop图标关闭Docker桌面,然后选择退出Docker桌面。

2.2 备份image及相关文件

默认情况下,Docker Desktop for Window会创建如下两个发行版(distro)

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

docker-desktop (对应distro/ext4.vhdx)
docker-desktop-data (对应data/ext4.vhdx)

通常data/ext4.vhdx会随着使用而增大,按官网提示,vhdx文件最大可支持256G。

将docker-desktop-data导出到备份文件中,使用如下命令

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

这里将备份文件docker-desktop-data.tar暂存在D盘下

2.3 wsl取消注册docker-desktop-data

请注意输入以下命令后,C:\Users\admin\AppData\Local\Docker\wsl\data\ext4.vhdx文件将被自动删除

wsl --unregister docker-desktop-data

2.4 将导出的docker-desktop-data再导入回wsl

该命令重新设置了路径,即新的镜像及各种docker使用的文件的挂载目录,我这里设置到F:\Docker-wsl\wsl

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

操作完成就能在该目录下看到文件了,这时次启动Docker Desktop,一切正常

2.5 验证是否有效(选做)

可以pull一个镜像,查看目录大小变化。正常情况下C盘不会再增大了。

参考

https://blog.csdn.net/a6661314/article/details/128029017

https://zhuanlan.zhihu.com/p/494334649

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

.Lance

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

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

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

打赏作者

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

抵扣说明:

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

余额充值