Быстрый способ уменьшения размера виртуального диска Docker на Windows

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Часто возникает проблема неограниченного расширения виртуального диска с докером на WIndows. Проблема в том, что после удаления лишних образов, контейнеров из docker объем виртуального диска докера не уменьшается. Одним из решением будет использование инструментов очистки пространства от докера и утилиты Diskpart совместно с compact.

Для начала запустим Windows Powershell и узнаем занимаемое пространства в докере с помощью команды: docker system df

Получим следующий вывод:

Вывод команды docker system df
Вывод команды docker system df

В выводе видим информацию о размерах занимаемого пространства и сколько в % этого пространства не используется. На начальном этапе размер моего виртуального диска докера занимал 90 Гб. После использования дальнейших команд размер снизился на 30 Гб до 60 Гб.

Выполним команду docker system prune

Вывод команды docker system prune
Вывод команды docker system prune

Данная команда позволяет удалить кэш сборок, все не использующиеся в данный момент контейнеры, образы, созданные сети. Чтобы не удалить ничего лишнего я предпочитаю использовать отдельные команды для удаления локальных хранилищ, кэшей сборки, образов и контейнеров. Это можно сделать с помощью команд: docker volume prune, docker builder prune, docker image prune, docker container prune.

Как мы видели на первом изображении, у меня больше всего занимало места volume и build cashe, поэтому последовательно я применил команды docker volume prune, docker builder prune. При запросе системы согласны ли мы на удаление, пишем да (Y).

После произведенных манипуляций картина такая:

Вывод команды docker system df
Вывод команды docker system df

Однако виртуальный диск докера размер не уменьшил. Нам теперь необходимо его принудительно сжать. В этом нам поможет утилита DiskPart. Поскольку у меня докер работает на wsl, то в начале необходимо остановить wsl, введя команду wsl --shutdown. Для проверки, что команда успешно отработало выполните wsl --list --verbose. В выводе будет что-то подобное:

Список установленных дистрибутивов wsl и их рабочий статус
Список установленных дистрибутивов wsl и их рабочий статус

Далее выполним команду diskpart и нам откроется командная строка утилиты. Там нам необходимо ввести путь до нашего виртуального диска докера. Команда имеет такой синтаксис: select vdisk file="<Path to docker vhdx disk>". После выполнения команды утилита сообщит, что соответствующий виртуальный диск выбран.

Работа утилиты diskpart
Работа утилиты diskpart

Дальше остается вызвать команду сжатия диска: compact vdisk . После завершения выполнения команды виртуальный диск станет занимать меньше места. В моем случае мне удалось освободить 30 Гб. Здесь все зависит от того, что конкретно вы почистили с помощью docker system prune. Закрываем diskpart и не забываем в конце запустить вновь wsl просто введя wsl.

Источник: https://habr.com/ru/articles/888664/


Интересные статьи

Интересные статьи

В данной статье будет показана нестандартная реализация компонентов Vue + Bitrix, которую вряд ли кто то видел и использовал.Без NPM, без сборщиков и без костылей. Все "нативными" средствами
Современное аддитивное производство в последние годы выросло в геометрической прогрессии с точки зрения того, ЧТО может быть достигнуто. Это уже не метод, позволяющий просто создавать необычные и прив...
Краткий обзорСегодня даже консервативные организации начинают внедрять Kubernetes. Платформа предлагает очевидные преимущества, — удобное развертывание, высокая скор...
Битрикс24 — популярная в малом бизнесе CRM c большими возможностями даже на бесплатном тарифе. Благодаря API Битрикс24 (даже в облачной редакции) можно легко интегрировать с другими системами.
Если вы последние лет десять следите за обновлениями «коробочной версии» Битрикса (не 24), то давно уже заметили, что обновляется только модуль магазина и его окружение. Все остальные модули как ...