Linux

Ключевые команды Docker для управления контейнерами

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

Обновлено 17 июля 2026 г.
10-15 мин
Средняя
FixPedia Team
Применимо к:Docker 24.0.5 (Ubuntu 22.04)

Введение / Зачем это нужно

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

Требования / Подготовка

  • Установленный Docker Engine версии 24+ (например, Docker 24.0.5 в Ubuntu 22.04).
  • Базовые знания терминала Linux.
  • Права sudo (или пользователь в группе docker) для выполнения команд Docker.

💡 Совет: Если Docker ещё не установлен, сначала выполните команду sudo apt update && sudo apt install docker.io docker-compose, а затем добавьте пользователя в группу docker, перезагрузив терминал.

Шаг 1: Запустить контейнер

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

docker run -d -p 8080:80 --name my-web my-web-image
  • -d — запуск в режиме демона (фоновый процесс).
  • -p 8080:80 — отображение внешнего порта 8080 на порт 80 внутри контейнера.
  • --name my-web — задаёт удобочитаемое имя.

💡 Совет: Добавьте --restart unless-stopped, если вам нужно автоматическое перезапускование контейнера после перезагрузки хоста.

Шаг 2: Просмотреть запущенные контейнеры

Проверьте, какие контейнеры работают, и получите их ID:

docker ps

Для просмотра остановленных контейнеров добавьте -a:

docker ps -a

Вывод показывает CONTAINER ID, IMAGE, COMMAND, CREATED, STATUS, PORTS, NAMES.

Шаг 3: Подключиться к работающему контейнеру

Откройте интерактивную оболочку внутри контейнера для диагностики:

docker exec -it my-web bash

-i сохраняет STDIN, -t добавляет виртуальный терминал. После входа вы можете просматривать логи, изменять файлы или запускать дополнительные утилиты.

Шаг 4: Остановить и удалить контейнер

Корректно остановите контейнер перед удалением:

docker stop my-web

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

docker rm my-web

Если образ больше не нужен, удалите и его:

docker rmi my-web-image

⚠️ Важно: docker rm удалит контейнер без возможности восстановления. Убедитесь, что у вас есть резервные копии данных.

Шаг 5: Управление образами и просмотр логов

Список доступных образов:

docker images

Соберите новый образ из Dockerfile:

docker build -t my-image .

Запустите собранный образ:

docker run -d -p 8081:80 --name my-web2 my-image

Просмотрите логи контейнера в режиме реального времени:

docker logs -f my-web

-f включает режим форвард-слежения, чтобы видеть новые записи.

Проверка результата

  • Убедитесь, что контейнер реагирует: curl http://localhost:8080.
  • Проверьте, что контейнер отображается в списке: docker ps.
  • Просмотрите последние логи: docker logs my-web.

Если контейнер не запускается, проверьте сообщения в docker logs my-web и убедитесь, что образ существует (docker images).

Возможные проблемы

СимптомПричинаРешение
Error response from daemon: driver failed programming external IP addressDocker не может назначить IP-адрес, часто из-за конфликта портов.Проверьте, что порт 8080 не используется другим контейнером или сервисом (lsof -i :8080). Измените проброс порта, например -p 8081:80.
Error: No such container: my-webКонтейнер не существует или уже удалён.Проверьте список: docker ps -a. Убедитесь, что имя (my-web) введено правильно.
Permission denied при выполнении docker runПользователь не входит в группу docker.Добавьте пользователя: sudo usermod -aG docker $USER, затем перелогиньтесь или выполните newgrp docker.
dial tcp 127.0.0.1:2375: connect: connection refusedDocker демон работает только на сокете, а не на TCP.Используйте сокет по умолчанию (unix:///var/run/docker.sock) или запустите Docker с правильными флагами.
docker system prune удаляет много ресурсовСлишком много неиспользуемых слоёв образов и контейнеров.После очистки пересоздайте ненужные образы: docker build -t fresh-image ., чтобы избежать частой перекомпиляции.

Если проблема не решена, выполните docker version и docker info, чтобы убедиться, что Docker Engine работает корректно.

Часто задаваемые вопросы

Как запустить новый контейнер с веб-приложением?
Где можно посмотреть список всех контейнеров?
Как подключиться к работающему контейнеру для диагностики?
Как очистить ненужные образы и контейнеры?

Полезное

Запустить контейнер
Просмотреть запущенные контейнеры
Подключиться к работающему контейнеру
Остановить и удалить контейнер
Управление образами и просмотр логов

Эта статья помогла вам решить проблему?