Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Linux / DevOps

Как удалить неиспользуемые образы Docker: docker image prune -a

Обновлено: 27.08.2026 · Официальная документация ↗

Диск переполнен старыми образами Docker

Каждый раз при сборке проекта через docker build или обновлении контейнеров командой docker compose pull на диске остаются предыдущие версии базовых образов (Ubuntu, Node, Python). Они больше не привязаны ни к одному активному контейнеру, но продолжают занимать гигабайты драгоценного места на SSD накопителе.

Команды безопасного удаления старых образов

  1. Посмотреть сколько места занимают образы:
    docker images
    docker system df
  2. Удалить только «висячие» безымянные образы (<none>):
    docker image prune
  3. Удалить ВСЕ образы, которые не используются работающими контейнерами:
    docker image prune -a

    Терминал запросит подтверждение: введите y и нажмите Enter. Все неиспользуемые образы будут мгновенно стерты.

  4. Удаление с фильтром по времени (например, старше 7 дней):
    docker image prune -a --filter "until=168h"

Безопасность: Docker имеет встроенную защиту: вы физически не сможете удалить образ, если от него прямо сейчас работает хоть один активный контейнер.

💡 Практика специалистов: В production-окружениях настройте регулярную очистку образов старше 14 дней в системном cron (`0 4 * * 0 docker image prune -a --force --filter "until=336h"`), чтобы предотвратить внезапное падение сервера из-за нехватки диска.

Частые вопросы (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`.

Полезные материалы
Рекомендуем