Остановленные контейнеры и неиспользуемые образы занимают место на диске. docker rm удаляет контейнеры, docker rmi — образы, docker system prune — всё сразу.

- docker rm — удалить контейнер
- Удалить все остановленные контейнеры
- docker rmi — удалить образ
- Удалить неиспользуемые образы
- docker system prune — очистить всё сразу
- Автоудаление контейнера после остановки
- Полная очистка Docker
- Шпаргалка по удалению
- Часто задаваемые вопросы
- Как удалить все Docker контейнеры одной командой?
- Как удалить образ если он используется контейнером?
- docker system prune удаляет volumes?
- Что читать дальше по Docker
docker rm — удалить контейнер
# Удалить остановленный контейнер
docker rm my-nginx
# Удалить по ID (достаточно первых символов)
docker rm abc123
# Удалить работающий контейнер (принудительно, SIGKILL)
docker rm -f my-nginx
# Удалить контейнер вместе с его volumes
docker rm -v my-nginx
# Удалить несколько сразу
docker rm container1 container2 container3
# ⚠️ Нельзя удалить работающий контейнер без -f
# Сначала docker stop, потом docker rm
Удалить все остановленные контейнеры
# Современный способ (рекомендуется)
docker container prune
# Без подтверждения
docker container prune -f
# Классический способ через подстановку
docker rm $(docker ps -aq -f status=exited)
# Посмотреть что будет удалено перед prune
docker ps -a -f status=exited
docker rmi — удалить образ
# Удалить образ по имени:тегу
docker rmi nginx:latest
# Удалить по ID
docker rmi abc123def
# Удалить несколько
docker rmi nginx:latest ubuntu:22.04 python:3.12-slim
# Принудительно (даже если есть зависимые контейнеры)
docker rmi -f nginx:latest
# ⚠️ Ошибка "image is being used by stopped container"
# Сначала удалить контейнер: docker rm container_name
# Потом образ: docker rmi image_name
Удалить неиспользуемые образы
# Удалить висячие образы (dangling — без имени и тега, :)
docker image prune
# Удалить ВСЕ неиспользуемые образы (у которых нет контейнеров)
docker image prune -a
# Без подтверждения
docker image prune -a -f
# Посмотреть сколько займёт место до удаления
docker system df
docker system prune — очистить всё сразу
# Удалить:
# - остановленные контейнеры
# - dangling образы (без тега)
# - неиспользуемые сети
docker system prune
# То же + неиспользуемые volumes (ОСТОРОЖНО с данными!)
docker system prune --volumes
# Удалить всё неиспользуемое (включая образы без контейнеров)
docker system prune -a
# Без подтверждения
docker system prune -a -f
# Показать что будет удалено и сколько места освободится
docker system df
Автоудаление контейнера после остановки
# Флаг --rm при запуске — удалить автоматически после exit
docker run --rm ubuntu echo "Привет!"
# Контейнер удалится сам после выполнения команды
# Удобно для одноразовых задач
docker run --rm python:3.12-slim python -c "import sys; print(sys.version)"
docker run --rm -v $(pwd):/data ubuntu ls /data
Полная очистка Docker
# ⚠️ ОСТОРОЖНО: удалит ВСЕ данные Docker!
# Остановить все запущенные контейнеры
docker stop $(docker ps -q)
# Удалить все контейнеры
docker rm $(docker ps -aq)
# Удалить все образы
docker rmi $(docker images -q)
# Удалить все volumes
docker volume prune -f
# Или всё одной командой
docker system prune -a --volumes -f
# Проверить результат
docker system df
# TYPE TOTAL ACTIVE SIZE RECLAIMABLE
# Images 0 0 0B 0B
# Containers 0 0 0B 0B
# Local Volumes 0 0 0B 0B
Шпаргалка по удалению
| Что удалить | Команда |
|---|---|
| Один контейнер | docker rm имя |
| Работающий контейнер | docker rm -f имя |
| Все остановленные | docker container prune |
| Один образ | docker rmi имя:тег |
| Dangling образы | docker image prune |
| Все неиспользуемые образы | docker image prune -a |
| Один volume | docker volume rm имя |
| Все неиспользуемые volumes | docker volume prune |
| Всё неиспользуемое | docker system prune |
| Полная очистка | docker system prune -a --volumes |
Часто задаваемые вопросы
Как удалить все Docker контейнеры одной командой?
Два способа: docker container prune -f — удалит все остановленные контейнеры без подтверждения. docker rm -f $(docker ps -aq) — удалит все контейнеры включая работающие (-f принудительно). Второй вариант опаснее — останавливает и удаляет даже работающие. На сервере осторожно — можно случайно снести что-то важное.
Как удалить образ если он используется контейнером?
Сначала удали контейнер: docker rm -f container_name, потом образ: docker rmi image_name. Если контейнеров несколько — найди все использующие образ: docker ps -a --filter ancestor=image_name. Принудительное удаление образа через docker rmi -f технически возможно, но образ просто потеряет тег — зависимые контейнеры продолжат использовать unlabeled версию.
docker system prune удаляет volumes?
По умолчанию — нет. docker system prune удаляет остановленные контейнеры, dangling образы и неиспользуемые сети. Чтобы включить volumes в очистку — добавь флаг: docker system prune --volumes. ⚠️ Это удалит данные баз данных и другие persistent данные — будь осторожен. Перед очисткой — docker volume ls чтобы увидеть что есть.
Что читать дальше по Docker
Чтобы связать тему с соседними практическими материалами, дальше удобно открыть:
- docker run — понять, какие контейнеры уже запущены.
- Основные команды Docker — вернуться к общей шпаргалке команд.
- Docker volumes — не удалить важные данные вместе с контейнером.



