Как уменьшить размер тома данных docker в Docker Desktop для Windows
Если вы используете Docker Desktop для Windows v2, использующий WSL2, то он хранит образы в отдельном виртуальном томе, обычно, находящемся тут: %LOCALAPPDATA%\Docker\wsl\data\ext4.vhdx
. Этот виртуальный том (vhdx) растет с увеличением числа созданных образов. При этом, если удалить образы из докера, то том не уменьшается.
Соответственно, его нужно чистить вручную.
Тут, так же, стоит отметить, что не всегда том получается сжать. Лично у меня не получилось ужать ее меньше 14,5Гб
Что понадобится
- Установленный Hyper-V (нам нужна будет програмка из его пакета)
- PowerShell запущенный под админом
Проверка наличия и установка Hyper-V
Открывает PowerShell
и вводим там следующую команду:
Import-Module -Name Hyper-V
Если в результате вылетела ошибка, значит Hyper-V не установлен. Надо его установить.
Отрываем «Включение и отключение компонентов Windows»:
1. Win+R
для открытия окна запуска комманд.
1. Пишем туда вызов программы appwiz.cpl
и нажимаем «ОК»
1. В открывшемся окне выберам в меню слева «Включение или отключение компонентов Windows»
1. В открывшемся окне ставим галочку рядом с Hyper-V
, жмем «ОК»
1. Дожидаемся установки и перезагружаемся.
Уменьшение размера виртуального тома
Открываем PowerShell с правами админа и поочередно вводим следующие комманды:
# Останавливаем сервис докера
net stop com.docker.service
# убиваем запущенные приложения докера
taskkill /IM "docker.exe" /F
taskkill /IM "Docker Desktop.exe" /F
# Тормозим WSL, чтобы освободить виртуальный том для редактирования
wsl --shutdown
# Оптимизируем размер виртуального тома
Optimize-VHD -Path <путь_до_папки_пользователя>\AppData\Local\Docker\wsl\data\ext4.vhdx -Mode Full
На этом все. Надеюсь данная заметка помогла вам освободить немного ценного пространства на диске.
Теги: Docker, Docker Desktop, PowerShell, Windows