Docker Desktop for Windows v2, which uses WSL2, stores all image and container files in a separate virtual volume (vhdx). This virtual hard disk file can automatically grow when it needs more space (to a certain limit). Unfortunately, if you reclaim some space, i.e. by removing unused images, vhdx doesn't shrink automatically.
wsl --shutdown
Optimize-VHD -Path "$($env:LOCALAPPDATA)\Docker\wsl\data\ext4.vhdx" -Mode Full
Set-Variable -Name "MaxSizeGB" -Value "32GB"
wsl --shutdown
resize-vhd -Path "$($env:LOCALAPPDATA)\Docker\wsl\data\ext4.vhdx" -SizeBytes $MaxSize