Shrink your WSL2 Virtual Disks and Docker Images and Reclaim Disk Space
Docker Desktop for Windows uses WSL to manage all your images and container files and keeps them in a private virtual hard drive (VHDX) called ext4.vhdx.
It's usually in
C:\Users\YOURNAME\AppData\Local\Docker\wsl\data and you can often reclaim some of the space if you've cleaned up (pruned your images, etc) with Optimize-Vhd under an administrator PowerShell shell/prompt.
You'll need to stop Docker Desktop by right clicking on its tray icon and choosing Quit Docker Desktop. Once it's stopped, you'll want to stop all running WSL2 instances with
Mine was 47gigs as I use Docker A LOT so when I optimize it from admin PowerShell from the wsl\data folder
optimize-vhd -Path .\ext4.vhdx -Mode full
...it is now 2 gigs smaller. That's nice, but it's not a massive improvement. I can run
docker images and see that many are out of date or old. If I'm not using Kubernetes I can turn it off and delete those containers as well from the Docker settings UI.
docker system prune -a to AGRESSIVELY tidy up. Read about these commands before your try yourself. -a means all unused images, not just dangling ones. Don't delete anything you love or care about. If you're worried,
docker system is safer without the -a.
Now my Docker WSL 2 VHD is 15 gigs smaller! Learn more about WSL, Windows 11, and WSLg on my latest YouTube!
NOTE: You can now get WSL from the Windows Store! Go get it here and then run "wsl --install" at your command line.
If you want, you can also go find your Ubuntu and other WSL disks and Compact them as well. I only think about this once or twice a year, so don't consider this a major cleanup thing unless you're really tight on space.
Ubuntu WSL disks will be in folders with names like
But you will want to look around for yours. Again, back things up and make sure WSL is shutdown first!
Enjoy! REMEMBER - Be sure to back things up before you run commands as admin from some random person's blog. Have a plan.
Sponsor: YugabyteDB is a distributed SQL database designed for resilience and scale. It is 100% open source, PostgreSQL-compatible, enterprise-grade, and runs across all clouds. Sign up and get a free t-shirt!