Сверкающее и чистое, почти как новое Docker-окружение

Igor Olemskoi
Jul 25, 2017 · 3 min read

Диск заполнен на 100% из-за висячих томов и образов docker

Когда я впервые начал использовать docker, он меня поразил. Уверен, что и вы испытали нечто подобное. Время шло, а docker не переставал меня удивлять. Например, однажды он занял все свободное место на диске. Пока я останавливал и запускал контейнеры, скачивал классные штуки с docker hub, гигабайты быстро таяли, заполняясь висячими (dangling) томами, остановленными контейнерами и ненужными образами. Осознав проблему, я вбил в гугл «docker cleanup» (очистка docker) и нашел подходящий набор команд, приведенных в этой замечательной статье: clean up yourself. Запомнить их довольно сложно, и я поместил эти команды в скрипт. В общем, для очистки можно использовать специальные контейнеры, например 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 // очиститься

Надеюсь, теперь и у вас есть набор простых команд, которые позволят с легкостью вернуть утраченное дисковое пространство. Спасибо за внимание.

Ссылки:

  1. Оригинал: Tidy and sparkling Docker environment with new Docker cleanup Commands.

Igor Olemskoi

Written by

Southbridge

Обеспечиваем стабильную работу серверов

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade