Как удалить неиспользуемые образы Docker: docker image prune -a
Диск переполнен старыми образами Docker
Каждый раз при сборке проекта через docker build или обновлении контейнеров командой docker compose pull на диске остаются предыдущие версии базовых образов (Ubuntu, Node, Python). Они больше не привязаны ни к одному активному контейнеру, но продолжают занимать гигабайты драгоценного места на SSD накопителе.
Команды безопасного удаления старых образов
- Посмотреть сколько места занимают образы:
docker images docker system df - Удалить только «висячие» безымянные образы (<none>):
docker image prune - Удалить ВСЕ образы, которые не используются работающими контейнерами:
docker image prune -aТерминал запросит подтверждение: введите y и нажмите Enter. Все неиспользуемые образы будут мгновенно стерты.
- Удаление с фильтром по времени (например, старше 7 дней):
docker image prune -a --filter "until=168h"
Безопасность: Docker имеет встроенную защиту: вы физически не сможете удалить образ, если от него прямо сейчас работает хоть один активный контейнер.
Частые вопросы (FAQ)
В чем разница между docker image prune и docker image prune -a?
Обычный `prune` удаляет только «висячие» слои без имени и тега (`<none>`). Флаг `-a` (all) удаляет вообще все скачанные образы, которые в данный момент не запущены в контейнерах.
Как принудительно удалить один конкретный образ по его ID?
Используйте команду: `docker rmi -f ID_ОБРАЗА`.
Удалятся ли мои базы данных и файлы при удалении образов?
Нет! Пользовательские данные хранятся в томах (Volumes) и примонтированных папках хоста. Удаление образов затрагивает только системные шаблоны приложений.
Как очистить кэш сборщика Docker Buildx?
Выполните команду: `docker builder prune -a -f`.