Если вы используете Docker Desktop для Windows, в котором применяется WSL2, все ваши образы и файлы контейнеров хранятся на отдельном виртуальном томе (vhdx).
Этот виртуальный жесткий диск имеет возможность автоматически увеличиваться, когда ему требуется больше места, пока не достигнет определенного предела.
Но если освободить место с помощью docker system prune –all или docker volume prune, то vhdx не уменьшится автоматически.
Windows предлагает два способа вручную уменьшить виртуальный диск, чтобы освободить неиспользуемое пространство.
1. Использование команды Optimize-VHD
Команда Optimize-VHD может использоваться для оптимизации распределения пространства в одном или нескольких файлах виртуального жесткого диска.
Она возвращает неиспользуемые блоки, а также переставляет блоки для более эффективной упаковки, что позволяет уменьшить общий размер файла виртуального жесткого диска.
Однако изменить размер фиксированных виртуальных жестких дисков нельзя.
Для запуска процесса перейдите в PowerShell (от имени администратора) и выполните команду:
2. Использование Diskpart для изменения размера VHD
Если вы не можете использовать Optimize-VHD в Windows (часто это невозможно сделать в Windows Home), то для изменения размера виртуального диска docker-desktop-data ext4.vhdx можно использовать другой подход.
Для уплотнения виртуального диска используется diskpart.
Для этого откройте терминал и выключите подсистему Windows для Linux
В качестве идентификатора для работы я выбрал vdisk, но вы можете назвать его по своему усмотрению.
Теперь можно присоединить, уплотнить, отсоединить виртуальный диск и закрыть diskpart.