Docker — Cleanup (Очистка и обслуживание)
Эта страница описывает команды и практики очистки Docker-окружения. Со временем на сервере накапливаются остановленные контейнеры, старые образы, build-cache и неиспользуемые volumes. Здесь разобраны способы безопасной очистки этих ресурсов и рекомендации по регулярному обслуживанию Docker-системы.
Почему Docker со временем занимает много места
При работе Docker постоянно создаёт временные и устаревшие ресурсы:
- остановленные контейнеры
- старые образы
- build cache после сборок
- неиспользуемые сети
- volumes с данными
Если их не удалять, они могут занять десятки гигабайт диска.
Проверка использования диска Docker
Перед очисткой полезно проверить, сколько места занимает Docker.
docker system df
Пример вывода:
TYPE TOTAL ACTIVE SIZE
Images 12 5 3.4GB
Containers 8 4 150MB
Local Volumes 6 4 8.2GB
Build Cache - - 2.1GB
Это показывает:
- сколько образов хранится
- сколько контейнеров существует
- сколько места занимают volumes
- размер build cache
Очистка остановленных контейнеров
Контейнеры, которые были остановлены, продолжают существовать в системе.
Удалить их можно так:
docker container prune
Docker попросит подтверждение.
Чтобы выполнить без подтверждения:
docker container prune -f
Очистка неиспользуемых образов
Если контейнеры пересобираются, старые образы остаются в системе.
Удалить их можно так:
docker image prune
Удаляются dangling images — образы без тегов.
Удаление всех неиспользуемых образов
docker image prune -a
Эта команда удаляет все образы, которые не используются контейнерами.
Важно: После удаления Docker при следующем запуске контейнера может заново скачать образ.
Очистка неиспользуемых volumes
Volumes могут занимать много места, особенно если в них хранятся базы данных.
Удалить неиспользуемые volumes:
docker volume prune
Без подтверждения:
docker volume prune -f
Важно: Удаляются только volumes, не подключённые к контейнерам.
Очистка сетей
Иногда остаются неиспользуемые Docker-сети.
Удалить их можно так:
docker network prune
Полная очистка Docker
Docker предоставляет команду для очистки большинства временных ресурсов.
docker system prune
Удаляются:
- остановленные контейнеры
- неиспользуемые сети
- dangling images
- build cache
Без подтверждения:
docker system prune -f
Полная очистка включая образы
docker system prune -a
Удаляются:
- все остановленные контейнеры
- все неиспользуемые образы
- сети
- build cache
Очистка build cache
Build cache создаётся при сборке Docker-образов.
Удалить cache можно так:
docker builder prune
Без подтверждения:
docker builder prune -f
Проверка больших Docker-директорий
Иногда полезно посмотреть, какие директории занимают больше всего места.
du -sh /var/lib/docker/*
Это поможет понять, где именно находятся большие файлы.
Регулярная очистка Docker
На серверах разработки рекомендуется периодически выполнять:
docker system prune -f
Если активно собираются образы:
docker builder prune -f
Пример полной очистки
Пример набора команд:
docker container prune -f
docker image prune -a -f
docker volume prune -f
docker network prune -f
docker builder prune -f
Эти команды удаляют почти все неиспользуемые ресурсы.
Типичные проблемы с очисткой
Удаление volumes с данными
Если выполнить:
docker compose down -v
Docker удалит все volumes проекта, включая базы данных.
Поэтому эту команду нужно использовать осторожно.
Удаление образов перед деплоем
Если удалить все образы, Docker будет вынужден заново скачивать их из registry.
Это может занять время.
Когда нужно выполнять очистку
Очистку стоит выполнять, если:
- диск сервера заполняется
- Docker занимает слишком много места
- накопилось много старых образов
- часто выполняется сборка контейнеров
Краткая памятка
docker system df # использование диска Docker
docker container prune # удалить остановленные контейнеры
docker image prune # удалить dangling images
docker image prune -a # удалить неиспользуемые образы
docker volume prune # удалить неиспользуемые volumes
docker network prune # удалить неиспользуемые сети
docker builder prune # очистить build cache
docker system prune # очистка системы Docker
docker system prune -a # полная очистка
Итог
Со временем Docker накапливает большое количество неиспользуемых ресурсов:
- контейнеров
- образов
- volumes
- build cache
Регулярная очистка системы помогает:
- освободить дисковое пространство
- поддерживать стабильную работу сервера
- избежать проблем с переполнением диска.
No comments to display
No comments to display