Docker与WSL2怎样清算

[复制链接]
发表于 2025-9-18 00:17:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Docker与WSL2怎样清算

   声明,本方法仅实用于docker数据不紧张的清算方式,本文没有备份过docker数据,是本人清算本身电脑探索出的方法,不要盲目模仿!!!
  一、docker占据磁盘空间焦点缘故因由分析

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

WSL2 使用 .vhdx 虚拟磁盘文件(如 ext4.vhdx 或 docker-data.vhdx)存储数据。该文件会随着数据增长主动扩容,但删除数据后不会主动缩小,导致 C 盘表现占用的空间宏大于现实使用量。
2. Docker 镜像分层缓存与未清算资源

Docker 的镜像、容器、构建缓存等资源会一连累积,纵然删除镜像,其底层共享的“层”大概仍被其他镜像引用而未被清算。
二、办理方案

步调 1:清算 Docker 未使用的资源

通过 Docker 下令清算镜像、容器、卷等残留数据:
  1. # 清理所有未使用的镜像、容器、网络、构建缓存和卷(强制模式)
  2. docker system prune -a --volumes --force
  3. # 单独清理构建缓存(如使用 Buildx)
  4. docker builder prune --force
复制代码
步调 2:手动压缩 WSL2 虚拟磁盘

由于虚拟磁盘文件不会主动缩小,需手动压缩:
1. 关闭 WSL2 和 Docker Desktop

  1. wsl --shutdown
复制代码
2. 定位 docker-desktop 和 docker-desktop-data 路径

在 PowerShell 中下令如下:
  1. Get-ChildItem "HKCU:\Software\Microsoft\Windows\CurrentVersion\Lxss" | ForEach-Object {
  2.     $distro = (Get-ItemProperty $_.PSPath).DistributionName
  3.     $path = (Get-ItemProperty $_.PSPath).BasePath
  4.     Write-Host "$distro 路径: $path\ext4.vhdx"
  5. }
复制代码
若乐成实行,输出类似:
  1. Ubuntu-22.04 路径: C:\Users\YourName\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx
  2. 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. 直接清算并重置(无紧张数据)

  1. # 注销分发版并删除文件
  2. wsl --unregister docker-desktop-data
  3. Remove-Item "C:\Users\Peter\AppData\Local\Docker\wsl\data\ext4.vhdx" -Force
复制代码
虚拟磁盘文件 ext4.vhdx 会重置为初始巨细(约 1GB),C 盘空间立即开释。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告
回复

使用道具 举报

×
登录参与点评抽奖,加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表