Борьба с Docker за дисковое пространство
Как вы проводите выходные? 😊 Я, например, запускаю в Docker различные программы: Airflow, Marquez, Superset, Grafana, чтобы протестировать локально их взаимодействие.
Тогда рано или поздно вы можете заметить: место на диске стремительно исчезает.
У меня это произошло на прошлой неделе. Локальный диск подсвечен красным, значит необходимы анализ и очистка. Разбираю, как обнаружить проблему и решить.
Шаг 1. Где искать куда уходит детство дисковое пространство?
Я использовал WizTree, он быстро анализирует диск и располагает по порядку, самые тяжелые папки и подпапки.
Результат:
AppData\Local\Docker\wsl\disk — 63.7 ГБ
Шаг 2. Смотрим внутрь Docker
Посмотрим использование диска Docker’ом
docker system df
Таким образом около 40 гигабайт лишнего груза
Шаг 3. Чистка
Далее запустил очистку докер от неиспользуемых объектов
docker system prune -f
и получил приятное сообщение:
Далее почистил кэш сборок:
docker builder prune --all --force
И получаю вывод:
Шаг 4. Донесём изменения до диска
Хоть мы и почистили файлы, но сделали это внутри виртуальной машины, Windows не знает об этом и файл всей системы Docker
AppData\Local\Docker\wsl\disk\docker_data.vhdx - без изменений.
Чтобы сжать его
1. Полностью выключаем WSL
wsl --shutdown
2. Выскочит окно предупреждение, скажем что все ок
3. Запускаем для сжатия
diskpart
Внутри diskpart:
select vdisk file="C:\Users\1\AppData\Local\Docker\wsl\disk\docker_data.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit
Шаг 5. Финальная проверка
Проверим финальный результат также через WizTree:
теперь он весит: 39.5 ГБ
Освободил 24 ГБ за 10-15 минут, по-моему отличный результат.
Желаю всем также почистить машину от мусора!



