当前位置: 首页 > web >正文

Docker与WSL2如何清理

文章目录

  • Docker与WSL2如何清理
    • 一、docker占据磁盘空间核心原因分析
      • 1. WSL2 虚拟磁盘的动态扩展特性
      • 2. Docker 镜像分层缓存与未清理资源
    • 二、解决方案
      • 步骤 1:清理 Docker 未使用的资源
      • 步骤 2:手动压缩 WSL2 虚拟磁盘
        • 1. 关闭 WSL2 和 Docker Desktop
        • 2. 定位 `docker-desktop` 和 `docker-desktop-data` 路径
        • 3. 直接清理并重置(无重要数据)

Docker与WSL2如何清理

声明,本方法仅适用于docker数据不重要的清理方式,本文没有备份过docker数据,是本人清理自己电脑摸索出的方法,不要盲目模仿!!!

一、docker占据磁盘空间核心原因分析

1. WSL2 虚拟磁盘的动态扩展特性

WSL2 使用 .vhdx 虚拟磁盘文件(如 ext4.vhdxdocker-data.vhdx)存储数据。该文件会随着数据增加自动扩容,但删除数据后不会自动缩小,导致 C 盘显示占用的空间远大于实际使用量。

2. Docker 镜像分层缓存与未清理资源

Docker 的镜像、容器、构建缓存等资源会持续累积,即使删除镜像,其底层共享的“层”可能仍被其他镜像引用而未被清理。

二、解决方案

步骤 1:清理 Docker 未使用的资源

通过 Docker 命令清理镜像、容器、卷等残留数据:

# 清理所有未使用的镜像、容器、网络、构建缓存和卷(强制模式)
docker system prune -a --volumes --force
# 单独清理构建缓存(如使用 Buildx)
docker builder prune --force

步骤 2:手动压缩 WSL2 虚拟磁盘

由于虚拟磁盘文件不会自动缩小,需手动压缩:

1. 关闭 WSL2 和 Docker Desktop
wsl --shutdown
2. 定位 docker-desktopdocker-desktop-data 路径

在 PowerShell 中命令如下:

Get-ChildItem "HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss" | ForEach-Object {$distro = (Get-ItemProperty $_.PSPath).DistributionName$path = (Get-ItemProperty $_.PSPath).BasePathWrite-Host "$distro 路径: $path\ext4.vhdx"
}

若成功执行,输出类似:

Ubuntu-22.04 路径: C:\Users\YourName\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx
docker-desktop-data 路径: C:\Users\YourName\AppData\Local\Docker\wsl\data\ext4.vhdx

docker-desktop-data 是 Docker 镜像、容器和持久化数据的存储核心,默认路径为 C:\Users\<用户名>\AppData\Local\Docker\wsl\data\ext4.vhdx,随着使用时间增长,该文件会持续占用 C 盘空间。

3. 直接清理并重置(无重要数据)
# 注销分发版并删除文件
wsl --unregister docker-desktop-data
Remove-Item "C:\Users\Peter\AppData\Local\Docker\wsl\data\ext4.vhdx" -Force

虚拟磁盘文件 ext4.vhdx 会重置为初始大小(约 1GB),C 盘空间立即释放。

http://www.xdnf.cn/news/3674.html

相关文章:

  • 一篇文章看懂web服务
  • NV203NV207SSD固态闪存NV208NV213
  • NoxLucky:个性化动态桌面,打造独一无二的手机体验
  • 用docker ffmpeg测试视频vmaf分数,很快不用编译
  • C#VisionMaster算子二次开发(非方案版)
  • NocoDB:开源的 Airtable 替代方案
  • operator 可以根据需要重载 == 运算符进行比较
  • 《告别试错式开发:TDD的精准质量锻造术》
  • 【quantity】7 角度单位模块(angle.rs)
  • 电脑RGB888P转换为JPEG方案 ,K230的RGB888P转换为JPEG方案
  • CGI(Common Gateway Interface)协议详解
  • 【AI面试准备】TensorFlow与PyTorch构建缺陷预测模型
  • AtCoder AT_abc404_g [ABC404G] Specified Range Sums
  • ​​信息泄露:网站敏感文件泄漏的隐形危机与防御之道​
  • 前端面试每日三题 - Day 23
  • 泰迪杯特等奖案例学习资料:基于时空图卷积网络的城市排水系统水位精准重建与异常检测
  • Power Query精通指南2:数据转换——透视/逆透视/分组、横向纵向合并数据、条件判断、处理日期时间
  • 如何设计抗Crosstalk能力强的PCB镀穿孔
  • Linux 进程间通信(IPC)详解
  • 【计算机视觉】目标检测:yoloV1~yoloV11项目论文及对比
  • 【信息系统项目管理师-论文真题】2011上半年论文详解(包括解题思路和写作要点)
  • LVGL -文本显示 英文、中文
  • MaC QT 槽函数和Lambda表达式
  • Leetcode刷题记录29——矩阵置零
  • 【JavaScript】性能优化:打造高效前端应用
  • 数据赋能(212)——质量管理——统一性原则
  • ROS2学习笔记|实现订阅消息并朗读的详细步骤
  • Easy云盘总结篇-登录注册
  • C# 编程核心:控制流与方法调用详解
  • 力扣每日一题 ​838. 推多米诺​