Купить Корзина
  • Облако и IT-инфраструктура
  • Домены и сайты
  • Вход
Получить консультацию

Ответим на вопросы, расскажем о конфигурациях, поможем с переносом, подберем оборудование, подготовим коммерческое предложение

Нажимая кнопку «Отправить» я даю согласие на обработку персональных данных и подтверждаю, что ознакомился с Политикой конфиденциальности

Персональный менеджер ответит на ваши вопросы и проведет через все этапы заключения договора: — подберет оборудование — сформирует коммерческое предложение — поможет с миграцией сервера к нам

Нажимая кнопку «Отправить» я даю согласие на обработку персональных данных и подтверждаю, что ознакомился с Политикой конфиденциальности

Или просто оставьте номер телефона, и мы перезвоним вам

  • Телефон в Москве

    +7 495 580-11-11
  • Бесплатный звонок по России

    8 800 555-34-78
  • Или обратитесь в наши офисы

    Региональные номера
    1. Документация
    2. Инструкции
    3. Облачные серверы
    4. Инструкции для UNIX-подобных операционных систем
    5. Как удалить образы, контейнеры и тома Docker

    Как удалить образы, контейнеры и тома Docker

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

    Docker удобно использовать для разработки, тестов и небольших сервисов на сервере: контейнер можно поднять за минуту, образ легко заменить новой версией, а окружение не смешивается с основной системой. Обратная сторона тоже есть. После экспериментов остаются завершенные контейнеры, после сборок — промежуточные слои, после обновлений — старые теги, а тома продолжают хранить данные даже после удаления контейнеров.

    Короткая схема очистки

    Удобнее не запоминать десятки команд, а идти по цепочке. Сначала проверьте диск, затем определите самый тяжелый тип объектов, после этого удаляйте только то, что действительно больше не нужно.

    • 1
      Оцените свободное место в системе через df -h.
    • 2
      Посмотрите отчет Docker командой docker system df -v.
    • 3
      Найдите остановленные контейнеры и временные экземпляры.
    • 4
      Уберите старые образы, которые не участвуют в запуске текущих сервисов.
    • 5
      Очистите кеш сборки, если часто запускаете docker build.
    • 6
      Проверьте тома отдельно и удаляйте их только после резервной копии или ручной проверки.
    • 7
      Запустите повторную диагностику и сравните результат.

    Не начинайте с docker system prune -a --volumes на рабочем сервере. Эта команда выглядит удобной, но одновременно затрагивает сразу несколько категорий данных, включая тома.

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

    Что может занимать место в Docker

    Docker хранит несколько видов объектов. Они связаны между собой, но удаляются разными командами. Из-за этого после удаления контейнера на диске могут остаться образ, том и часть кеша:

    • контейнеры — запущенные или остановленные экземпляры приложений. Завершенный контейнер уже не работает, но запись о нем остается, а вместе с ней могут сохраняться логи и изменения файловой системы;

    • образы — набор слоев, из которых создаются контейнеры. Старые теги часто остаются после обновлений приложения или ручных тестов разных версий;

    • тома — хранилища для данных, которые должны жить отдельно от контейнера. В томах размещают базы данных, файлы пользователей, настройки и загрузки сайта;

    • кеш сборки — слои, которые Docker использует, чтобы ускорять повторные сборки образов из Dockerfile. На активных проектах этот кеш может расти незаметно;

    • сети — записи сетевого окружения. Они почти не расходуют диск, но после старых Compose-проектов могут оставаться лишние сущности.

    Диагностика: сначала найдите источник расхода места

    Проверьте, сколько свободного места осталось на диске сервера или рабочей машины:

    df -h

    После этого посмотрите сводку Docker. Команда покажет отдельные строки для образов, контейнеров, локальных томов и кеша сборки:

    docker system df

    Если нужен более подробный отчет, используйте расширенный вывод:

    docker system df -v

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

    Удаление контейнеров Docker

    Важно

    Перед очисткой Docker на рабочем сервере стоит заранее сохранить важные данные. В Рег.облаке для этого можно использовать резервное копирование и снимки состояния сервера: они помогают вернуться к предыдущему состоянию сервера, если после удаления контейнеров, образов или томов что-то пошло не так.

    Удаление контейнера убирает конкретный экземпляр приложения, но не стирает образ, из которого он был создан. Тома тоже могут остаться на месте, если они были подключены отдельно.

    Сначала выведите только работающие контейнеры:

    docker ps

    Для полной картины добавьте остановленные и завершенные экземпляры:

    docker ps -a

    В выводе обратите внимание на NAME, CONTAINER ID, IMAGE и STATUS. Записи со статусами Exited или Created чаще всего становятся первыми кандидатами на удаление, но для рабочих проектов лучше свериться с владельцем сервиса или документацией проекта.

    В Docker удалить контейнер можно, просто указав имя или идентификатор остановленного экземпляра:

    docker rm название_контейнера
    docker rm id_контейнера

    Проверьте результат повторным выводом списка:

    docker ps -a

    Если нужно удалить работающий контейнер, важно корректно остановить его:

    docker stop название_контейнера

    А затем удалить командой:

    docker rm название_контейнера

    Если нужно принудительно удалить работающий контейнер, вам понадобится параметр -f:

    docker rm -f название_контейнера

    Команда сначала остановит контейнер, а затем удалит его. Использовать ее стоит аккуратно, особенно если внутри контейнера работает база данных или приложение, которое обрабатывает запросы.

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

    docker container prune

    Docker попросит подтвердить действие. Если подтверждение не нужно, добавьте параметр -f:

    docker container prune -f

    Удалить все контейнеры сразу, включая работающие, можно так:

    docker rm -f $(docker ps -aq)

    Важно

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

    Удаление образов Docker

    Образ можно удалить только в том случае, если Docker не видит активной зависимости от контейнера. Даже остановленный контейнер может блокировать удаление, потому что он продолжает ссылаться на слой образа.

    Выведите список образов:

    docker image ls

    В списке будут указаны имя образа, тег, идентификатор, дата создания и размер.

    В Docker удалить образ можно по имени и тегу:

    docker rmi nginx:latest

    Также можно удалить образ по идентификатору:

    docker rmi image_id

    Если появится ошибка о зависимости, найдите контейнер, который создан из этого образа. Сначала удалите или пересоздайте связанный контейнер, затем повторите удаление образа.

    После сборок могут оставаться записи без нормального имени и тега. Они часто выглядят как . Такие образы часто называют промежуточными или висячими. Удалить их можно командой:

    docker image prune

    Чтобы удалить все образы, которые не используются контейнерами, выполните:

    docker image prune -a

    Важно

    docker image prune удаляет только образы без тега, а docker image prune -a удаляет все неиспользуемые образы, даже если у них есть имя и тег.

    Удаление томов Docker

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

    Выведите все локальные тома:

    docker volume ls

    Чтобы узнать, где находится том и какими контейнерами он может использоваться, выполните:

    docker volume inspect название_тома

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

    Дополнительно можно посмотреть, какие контейнеры подключают том, через docker inspect самого контейнера:

    docker inspect название_контейнера

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

    В Docker удалить том можно отдельной командой:

    docker volume rm название_тома

    Если система сообщит, что том используется, найдите связанный контейнер, остановите его, удалите контейнер и только потом повторите команду для volume:

    docker stop название_контейнера
    docker rm название_контейнера
    docker volume rm название_тома

    Для удаления томов, которые не подключены ни к одному контейнеру, есть команда:

    docker volume prune

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

    Если контейнер создавался с анонимным томом и данные уже не нужны, используйте флаг -v при удалении контейнера:

    docker rm -v название_контейнера

    Общая очистка неиспользуемых ресурсов

    Когда нужно убрать стандартный набор мусорных объектов, используйте:

    docker system prune

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

    Чтобы затронуть не только образы без тега, но и все образы, которые сейчас не нужны контейнерам, используйте -a:

    docker system prune -a

    Тома в такую очистку не попадают, пока явно не указан параметр --volumes:

    docker system prune -a --volumes

    Обратите внимание

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

    Кеш сборки можно очистить отдельно:

    docker builder prune

    Для полной очистки неиспользуемого кеша сборщика в Docker используйте:

    docker builder prune -a

    После завершения проверьте результат:

    docker system df

    Если свободного места стало ненамного больше, проблема может быть не в Docker. Проверьте журналы контейнеров, системные логи, резервные копии, временные каталоги и другие крупные файлы на сервере.

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

    Если место не освободилось после удаления

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

    • 1
      Проверьте системные журналы и резервные копии: место может уходить не на Docker.
    • 2
      Оцените каталог Docker на Linux командой du -sh /var/lib/docker, но не удаляйте из него файлы вручную.
    • 3
      Посмотрите логи конкретных контейнеров через docker logs --tail=50 название_контейнера.
    • 4
      Для долгоживущих сервисов настройте ротацию логов, чтобы они не росли бесконечно.

    Ручная чистка /var/lib/docker/overlay2 почти всегда плохая идея. Docker ожидает, что слои и метаданные останутся согласованными. Удаление файлов из внутреннего каталога может повредить контейнеры и образы.

    В некоторых случаях и после очистки диска места все равно не хватает. Это значит, что проект вырос и текущего объема уже недостаточно — удалять дальше просто нечего. В таком случае удобно перейти в облако: в Рег.облаке можно увеличить диск на виртуальном сервере, не перенося данные и не останавливая работу сервера.

    Типичные ошибки при очистке Docker

    Ошибка
    Риск
    Как поступить
    Удалять тома без просмотра содержимого
    Можно стереть базу данных, файлы сайта или настройки
    Сначала выполнить docker volume inspect и сделать резервную копию
    Запускать docker system prune -a --volumes без подготовки
    Команда может затронуть volume, который сейчас не подключен
    Разделить очистку: контейнеры, образы, кеш и только затем тома
    Считать контейнер и образ одним объектом
    Удаление одного не гарантирует удаление другого
    Проверять контейнеры через docker ps -a, образы — через docker image ls
    Принудительно удалять рабочий контейнер
    Приложение может не успеть завершить операции записи
    Сначала попробовать docker stop, затем docker rm
    Удалять старые теги без версии для отката
    После неудачного релиза придется заново искать или собирать прошлый образ
    Оставить рабочий образ до завершения проверки новой версии
    Чистить только Docker и игнорировать систему
    Диск может быть занят журналами, архивами или бэкапами
    Сначала сравнить df -h и docker system df -v
    Удалять файлы из overlay2 вручную
    Можно нарушить внутренние связи Docker
    Использовать команды Docker, а не ручное удаление из /var/lib/docker

    Как сделать очистку регулярной

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

    Для командной разработки можно ввести простое правило: временные контейнеры живут ограниченное время, образы без тега не хранятся неделями, кеш сборки чистится по расписанию, а volume удаляются только вручную после проверки. Дисциплина снижает риск аварийной очистки в момент, когда диск уже заполнен.

    Свободное место может заканчиваться снова и снова, даже если вы регулярно удаляете контейнеры и старые образы. Это сигнал к пересмотру инфраструктуры и процессов.

    Например, если вам знакомы следующие проблемы:

    • образы пересобираются много раз в день, но старые теги не удаляются после релизов;

    • на одном сервере живут десятки временных окружений без срока удаления;

    • базы данных и файлы пользователей хранятся на маленьком системном диске;

    • логи контейнеров растут без ограничения размера;

    • CI использует один и тот же сервер для сборок, тестов и хранения артефактов.

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

    Если вы планируете масштабную чистку Docker, сделайте перед этим снэпшот — снимок состояния сервера. Он позволит за пару минут вернуть всю систему в исходное состояние, если что-то пойдет не так. Снэпшот в облаке создается без остановки сервера и занимает минимум времени, а вы получаете страховку от случайной потери данных. Полезно сделать его перед удалением томов или старых образов, к которым могут быть привязаны сервисы.

    Итоги

    Docker постепенно оставляет после себя остановленные контейнеры, старые слои образов, кеш сборки, сети и тома. Освобождение места лучше начинать с диагностики: docker system df, docker system df -v, docker ps -a, docker image ls и docker volume ls.

    Самый безопасный сценарий — удалять объекты по очереди: сначала явно ненужные контейнеры, затем лишние образы, потом кеш сборки и только после отдельной проверки — тома. Контейнер или образ можно восстановить довольно быстро, а данные в томе могут быть единственной копией. Поэтому перед docker system prune -a --volumes и docker compose down -v убедитесь, что удаляемая информация точно не нужна или уже сохранена в резервной копии.

    Частые вопросы

    Как удалить контейнер Docker?

    Если контейнер остановлен, удалите его командой: docker rm название_контейнера

    Если контейнер работает, сначала остановите его: docker stop название_контейнера

    Затем удалите: docker rm название_контейнера

    Если нужно принудительно удалить контейнер, выполните команду: docker rm -f название_контейнера

    Как удалить Docker-образ?

    Посмотрите список образов: docker image ls

    Удалите нужный образ по имени, тегу или идентификатору: docker rmi название_образа:tag

    Например: docker rmi nginx:latest

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

    Что произойдет после удаления контейнера?

    Контейнер исчезнет из списка Docker, и его нельзя будет запустить снова. Если данные хранились только внутри контейнера, они будут удалены вместе с ним.

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

    Можно ли удалить используемый Docker-образ?

    Обычной командой — нет. Docker не позволит удалить образ, если на его основе создан контейнер. Даже остановленный контейнер может мешать удалению образа.

    Сначала удалите контейнер: docker rm название_контейнера

    Затем удалите образ: docker rmi название_образа

    Как удалить все неиспользуемые ресурсы Docker?

    Для общей очистки используйте: docker system prune

    Чтобы удалить больше неиспользуемых данных, включая неиспользуемые образы, выполните: docker system prune -a

    Чтобы дополнительно удалить неиспользуемые тома: docker system prune -a --volumes

    Что такое Docker volume?
    Docker volume, или том Docker, — это отдельное хранилище данных, которое можно подключать к контейнерам. Тома используют для баз данных, файлов сайта, настроек и другой информации, которая должна сохраняться после удаления или пересоздания контейнера.
    Удаляются ли данные после удаления контейнера?
    Зависит от того, где хранились данные. Если данные были записаны только внутри контейнера, они удалятся вместе с ним. Если данные находились в томе Docker, они обычно сохранятся.
    Как узнать, что занимает место в Docker?

    Используйте команду: docker system df

    Она покажет, сколько места занимают образы, контейнеры, тома и кеш сборки.

    Была ли статья полезна?

    Спасибо за оценку. Рады помочь 😊

     👍
    Специальные предложения
    • Гранты для бизнеса до 500к
    • Скидки на cloud GPU до 50%
    • Скидки на bare-metal с А4000 и А5000
    • Кешбэк 100% на kubernetes
    • Free Tier | Бесплатный старт в облаке
    Рассылка Рег.облака

    Лайфхаки, скидки и новости об IT

    Даю согласие на получение рекламных и информационных материалов

    Продукты и сервисы
    • Облачные серверы
    • Выделенные серверы
    • Базы данных
    • S3 хранилище
    • Кластеры Kubernetes
    • Cloud GPU
    • VPS
    Решения
    • Интернет-магазин в облаке
    • Разработка и тестирование в облаке
    • Удаленный рабочий стол
    • Работа с 1С
    • Корпоративное хранение данных
    • Искусственный интеллект и машинное обучение в облаке
    • Конфигуратор сервера
    • Администрирование серверов
    Техподдержка
    • Создать тикет
    • Документация
    Прочее
    • О компании
    • Партнерская программа
    • Гранты
    • Блог
    • Контакты
    • Отзывы клиентов
    Free Tier
    • Программа Free Tier / Бесплатный старт
    • Бесплатный облачный сервер
    • Бесплатный сервер с ispmanager «старт»
    • © ООО «РЕГ.РУ» Нашли опечатку?
      Выделите и нажмите Ctrl+Enter
    • Облачная платформа Рег.ру включена в реестр российского ПО Запись №23682 от 29.08.2024
      • Политика конфиденциальности
      • Политика обработки персональных данных
      • Правила применения рекомендательных технологий
    • 8 800 333-92-23

      Бесплатный звонок по России

      +7 (495) 009‑92‑22

      Телефон в Москве

      • max
      • vk
      • telegram
      • vkvideo
      • vcru
      • moikrug
      • rbc
    • Мы используем cookie и рекомендательные технологии для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера