Диск заполнен на 100% из-за висячих томов и образов docker
Когда я впервые начал использовать docker, он меня поразил. Уверен, что и вы испытали нечто подобное. Время шло, а docker не переставал меня удивлять. Например, однажды он занял все свободное место на диске. Пока я останавливал и запускал контейнеры, скачивал классные штуки с docker hub, гигабайты быстро таяли, заполняясь висячими (dangling) томами, остановленными контейнерами и ненужными образами.
Запомнить их довольно сложно, и я поместил эти команды в скрипт. В общем, для очистки можно использовать специальные контейнеры, например docker-gc от spotify, или запомнить команды (да, я знаю: когда разберешься с функциями команд, они запомнятся сами собой). Однако вы можете не захотеть выполнять все эти процедуры для очистки docker-окружения.
До команды Docker дошла информация об этой проблеме, и в версии 1.13 был реализован набор легко запоминаемых команд очистки, которые теперь доступны в рамках базовой команды system. Давайте на них взглянем.
Использование базовой команды docker system
Осмотр docker-окружения
Команда docker system df выдает подробную статистику о контейнерах, образах и томах. Она также сообщает, сколько места можно освободить, выполнив очистку.
docker system df
Подробная информация о docker-окружении, полученная с помощью docker system df -v
Верните себе драгоценное пространство
Очистить систему можно с помощью команды docker system prune. По умолчанию будут удалены остановленные контейнеры, висячие образы (слои, не связанные с используемыми образами), тома и сети, не относящиеся к работающим контейнерам. Опция -a позволяет удалить не только висячие, но и вообще все неиспользуемые образы (не ассоциированные с запущенными контейнерами). Опция -f подавляет запросы на подтверждения. Обе опции по умолчанию выключены.
docker system prune
Удаляем неиспользуемые образы с помощью docker system prune -a
Команда prune полезна в том случае, когда нужно удалить только висячие образы и остановленные контейнеры. Выполнив docker image prune, docker container prune, вы избавитесь от ненужных образов и контейнеров.
Удаляем все ненужные контейнеры с помощью docker container prune
Удаляем все ненужные образы с помощью docker image prune
Подытожим: приведенные ниже команды (с опциями и вариациями) помогут освободить место на диске:
docker system // посмотреть доступные команды
docker system df // получить статистику о docker-окружении
docker system prune // очиститься
Надеюсь, теперь и у вас есть набор простых команд, которые позволят с легкостью вернуть утраченное дисковое пространство. Спасибо за внимание.