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

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 盘空间立即释放。

相关文章:

  • WebRTC 服务器之Janus架构分析
  • 【JAVA】数组与内存模型:二维数组底层实现(9)
  • 2.2 矩阵
  • NV203NV207SSD固态闪存NV208NV213
  • Maven 实现多模块项目依赖管理
  • neo4j初尝试
  • YOLOv11改进:利用RT-DETR主干网络PPHGNetV2助力轻量化目标检测
  • Excel-CLI:终端中的轻量级Excel查看器
  • 普通IT的股票交易成长史--20250502 突破(2)
  • 硬件工程师面试常见问题(12)
  • ES6/ES11知识点 续一
  • JavaScript性能优化实战之调试与性能检测工具
  • 【Hive入门】Hive与Spark SQL深度集成:通过Spark ThriftServer高效查询Hive表
  • 【Hive入门】Hive与Spark SQL深度集成:执行引擎性能全面对比与调优分析
  • 【Linux】Petalinux驱动开发基础
  • 学习黑客安全基础理论入门
  • Vue3源码学习6-增强鲁棒性?
  • 网络安全:sql注入练习靶场——sqli_labs安装保姆级教程
  • ICML2021 | DeiT | 训练数据高效的图像 Transformer 与基于注意力的蒸馏
  • python中的函数
  • 央行:增加支农支小再贷款额度3000亿元
  • 中方对原产印度进口氯氰菊酯实施反倾销措施,商务部回应
  • 央行将增加3000亿元科技创新和技术改造再贷款额度
  • 丁薛祥在学习《习近平经济文选》第一卷专题研讨班上强调:深入学习贯彻习近平经济思想,加强党中央对经济工作的集中统一领导
  • 娱见 | 为了撕番而脱粉,内娱粉丝为何如此在乎番位
  • 市场监管总局发布《城镇房屋租赁合同(示范文本)》