Docker — Cleanup (Очистка и обслуживание)

Эта страница описывает команды и практики очистки Docker-окружения. Со временем на сервере накапливаются остановленные контейнеры, старые образы, build-cache и неиспользуемые volumes. Здесь разобраны способы безопасной очистки этих ресурсов и рекомендации по регулярному обслуживанию Docker-системы.


Почему Docker со временем занимает много места

При работе Docker постоянно создаёт временные и устаревшие ресурсы:

Если их не удалять, они могут занять десятки гигабайт диска.


Проверка использования диска 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

Это показывает:


Очистка остановленных контейнеров

Контейнеры, которые были остановлены, продолжают существовать в системе.

Удалить их можно так:

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

Удаляются:

Без подтверждения:

docker system prune -f

Полная очистка включая образы

docker system prune -a

Удаляются:


Очистка 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 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 накапливает большое количество неиспользуемых ресурсов:

Регулярная очистка системы помогает:


Revision #1
Created 2026-03-11 08:55:36 UTC by Crimson
Updated 2026-03-11 08:56:17 UTC by Crimson