Гид по технологиям

Очистка Docker-образов и освобождение места

4 min read DevOps Обновлено 01 Dec 2025
Очистка Docker-образов и освобождение места
Очистка Docker-образов и освобождение места

Иллюстрация: использование образов Docker

Быстрые ссылки

  • Docker Images vs. Docker Containers
  • Pruning Images

Образы Docker vs контейнеры

Образы (images) — это статические, read-only файлы, созданные из Dockerfile и обычно доступные в реестре (Docker Hub, частный реестр). Контейнеры создаются из образов и запускают процессы; у них есть собственная файловая система и подключённые тома (volumes). При остановке контейнера данные, не сохранённые в volume, удаляются вместе с контейнером.

Важно: образы — это слоистые артефакты. При загрузке новой версии Docker сохраняет только отличия (дельты), но старые теги/версии всё ещё отображаются локально, пока вы их не удалите.

Когда нужно чистить образы

  • Дисковое пространство заканчивается на сервере CI/CD или разработческой машине.
  • Накопилось много старых тегированных образов, которых никто не использует.
  • Переход на новый механизм сборки (например BuildKit) или смена реестра.

Когда не стоит: если у вас медленное/ограниченное соединение с реестром и регулярная повторная загрузка образов не приемлема.

Важно: удаление образа не удаляет тома. Если нужно освободить место, проверьте также volumes и build cache.

Просмотр образов

Чтобы увидеть все локальные образы:

docker image ls

Вывод команды docker image ls с несколькими версиями образов

Несмотря на видимость множества тегов, фактическое израсходованное место хранится инкрементально — общие слои разделяются между образами.

Удаление образа вручную

Если вы точно знаете ID образа:

docker image rm 3a8d8f76e7f8f

Это безопасно при условии, что образ не используется активными контейнерами. В противном случае Docker вернёт ошибку и не позволит удалить образ.

Безопасная массовая очистка: prune

Рекомендуемый способ — использовать встроенный garbage collection:

docker image prune -a
  • Без флага -a команда удалит только dangling images (образы без тегов).
  • С -a останутся только образы, на которые есть активные ссылки (используемые контейнерами) или явно помеченные для сохранения.

Команда покажет объём освобождённого пространства. Для проверки до/после используйте:

sudo du -sh /var/lib/docker/

Локальные пути по ОС (пример):

  • Linux: /var/lib/docker/
  • Windows Desktop: C:\ProgramData\DockerDesktop
  • macOS (Docker Desktop): ~/Library/Containers/com.docker.docker/Data/vms/0/

Локализация путей: на Windows обратите внимание на обратные слэши (\).

Дополнительные полезные команды

  • Удаление всех неиспользуемых ресурсов (контейнеры, сети, образы, кэш):
docker system prune --all --volumes
  • Очистка builder cache:
docker builder prune
  • Просмотр размера занимаемого каждым объектом:
docker system df

Мини‑методология: безопасный рабочий процесс очистки

  1. Оцените текущее использование: docker system df и du -sh.
  2. Найдите активно используемые образы: docker ps -a --format '{{.Image}}' | sort | uniq.
  3. Снимите резервную копию важных образов в частный реестр (если требуется).
  4. Запустите docker image prune -a в среде разработки/локально.
  5. Проверяйте журналы запуска контейнеров и CI на предмет ошибок после очистки.
  6. Если что-то пошло не так, восстановите образ из реестра и перезапустите контейнеры.

Роль‑ориентированные чек‑листы

Разработчик:

  • Убедиться, что локальные изменения сохранены в репозитории.
  • Перед очисткой заново собрать локально критичные образы.

Системный администратор / DevOps:

  • Проверить политики ретенции в реестре.
  • Сделать snapshot диска перед массовой очисткой на проде.
  • Выполнить очистку в maintenance window.

CI/CD инженер:

  • Настроить автоматическую очистку build cache и старых артефактов.
  • Ограничить число сохраняемых успешных артефактов.

Критерии приёмки

  • Удалены неиспользуемые образы без влияния на работающие контейнеры.
  • Освобожденное место проверено и задокументировано.
  • Восстановление образов возможно из реестра в течение заданного RTO.

Когда очистка может не помочь (контрпримеры)

  • Большая часть занимаемого места — это Docker volumes с данными баз данных. docker image prune не решит проблему.
  • На машинах с дефектным файловым хранилищем пространство может оставаться занятым из‑за незавершённых операций.
  • Если образы хранятся в другом каталоге (переопределённый daemon.json), надо чистить именно тот путь.

Альтернативные подходы

  • Точный таргетинг: удалять по тегам/ретагам вместо -a.
  • Использовать cron + скрипт, который логирует и отправляет отчёт о том, что удалено.
  • В проде — использовать ретенцию в приватном реестре, а не локальную очистку.

План отката / инцидентный рунбук

  1. Если после prune упала сборка — проверить docker system df и логи.
  2. Восстановить образ из реестра: docker pull my.registry/repo:tag.
  3. Перезапустить сервис/контейнер: docker-compose up -d или docker run.
  4. Если образ недоступен, восстановить диск из снапшота.

Короткий справочник (cheat sheet)

  • Просмотр: docker image ls
  • Удалить один образ: docker image rm
  • Пробрить неиспользуемые: docker image prune -a
  • Очистить всё: docker system prune --all --volumes
  • Размеры: docker system df

Безопасность и конфиденциальность

Изображения могут содержать секреты (ключи, токены) в слоях — проверяйте и удаляйте такие образы. Перед массовой очисткой убедитесь, что никакие критичные образы не единственные источники правды (должен быть реестр как backup).

Тесты и приёмочные критерии

  • Запуск docker image prune -a в тестовом окружении освобождает место и не ломает запуск контейнеров.
  • После очистки CI‑пайплайн успешно вытягивает образы из реестра и завершает сборку.

Короткое резюме

Очищайте Docker-образы регулярно и по плану: используйте docker image prune -a для автоматической очистки неиспользуемых образов, следите за томами и build cache отдельно, документируйте операции и имейте стратегию восстановления.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Удаление дубликатов файлов на Mac — Finder и приложения
macOS

Удаление дубликатов файлов на Mac — Finder и приложения

Установка Windows 11 на неподдерживаемые ПК
Windows

Установка Windows 11 на неподдерживаемые ПК

Устранение ошибки Epson 1131: полное руководство
Поддержка принтеров

Устранение ошибки Epson 1131: полное руководство

Отключить Bluetooth в Arch Linux быстро и безопасно
Linux

Отключить Bluetooth в Arch Linux быстро и безопасно

Windows netstat: прослушиваемые порты
Сеть

Windows netstat: прослушиваемые порты

Ограничения ресурсов в Kubernetes: CPU, память и хранилище
Kubernetes

Ограничения ресурсов в Kubernetes: CPU, память и хранилище