< Все записки
DevOps

Docker: Базовые команды и очистка

12 апреля 2026 г. Оператор #docker#containers#devops#cli#infrastructure

Этот справочник поможет быстро вспомнить основные команды для работы с контейнерами Docker и методы эффективной очистки системы. Здесь собраны инструменты для управления жизненным циклом ресурсов и удаления неиспользуемых данных.

Групповые операции

Для применения команды сразу к нескольким объектам перечислите их имена или ID через пробел.

docker [команда] container1 container2 container3

Просмотр контейнеров

Вывод списка только запущенных контейнеров:

docker ps

Вывод всех существующих контейнеров (включая остановленные):

docker ps -a

Вывод только ID контейнеров (полезно для скриптов):

docker ps -q

Управление состоянием

Запуск, остановка и перезагрузка:

docker start [ID/NAME]     # Запустить
docker stop [ID/NAME]      # Остановить
docker restart [ID/NAME]   # Перезапустить

Взаимодействие и отладка

Просмотр логов (вывод приложения внутри контейнера):

docker logs [ID/NAME]
docker logs -f [ID/NAME]   # Режим слежения (live)

Запуск терминала внутри работающего контейнера:

docker exec -it [ID/NAME] sh

Удаление и очистка (Prune)

Команды prune позволяют массово удалять неиспользуемые (“висячие”) ресурсы.

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

Удаление конкретных объектов:

docker rm [ID/NAME]
docker rm -f [ID/NAME]     # Принудительное удаление

Массовое удаление всех остановленных контейнеров:

docker container prune

Варианты очистки других ресурсов

Очистка образов, томов и сетей:

docker image prune         # Удалить неиспользуемые образы
docker volume prune        # Удалить неиспользуемые тома данных
docker network prune       # Удалить неиспользуемые сети

Полная очистка системы

Удаление всех неиспользуемых данных (контейнеры, сети, “висячие” образы):

docker system prune

Глубокая очистка (включая все неиспользуемые образы и тома):

docker system prune -a --volumes

Автоматизация

Пример остановки всех запущенных контейнеров:

docker stop $(docker ps -q)

Оценка использования диска

Перед очисткой полезно узнать, сколько места занимают ресурсы Docker:

docker system df

Для подробного анализа (с разбиением по каждому объекту):

docker system df -v

Мониторинг ресурсов

Отслеживание потребления CPU, оперативной памяти и сетевого трафика в реальном времени:

docker stats

Тонкая очистка и важные предупреждения

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

Вы можете удалять ресурсы, созданные более определенного времени назад (например, более 24 часов):

docker container prune --filter "until=24h"
docker image prune -a --filter "until=168h" # старше недели

⚠️ ВНИМАНИЕ

Использование команды docker system prune --volumes или флаг --volumes при полной очистке безвозвратно удаляет все тома (Volumes), которые не используются запущенными контейнерами. Это может привести к потере важных данных БД или пользовательских файлов, если они не примонтированы к активному процессу.

Управление сетями (Networking)

Создание и инспекция сетей для связи между контейнерами:

docker network create [NAME]    # Создать сеть
docker network ls               # Список всех сетей
docker network inspect [NAME]   # Детальная информация о сети
docker network rm [NAME]        # Удалить сеть

Переменные окружения (Env)

Передача настроек внутрь контейнера при запуске:

# Одиночная переменная
docker run -e MY_VAR=value [IMAGE]

# Использование файла с переменными (.env)
docker run --env-file .env [IMAGE]

Работа с образами (Images)

Жизненный цикл образов:

docker pull [IMAGE]:[TAG]       # Скачать образ из реестра
docker images                   # Список локальных образов
docker build -t [NAME]:[TAG] .  # Сборка образа из Dockerfile в текущей папке
docker push [NAME]:[TAG]        # Отправить образ в реестр
docker rmi [IMAGE_ID]           # Удалить локальный образ