Linux

Полный гайд по базовым командам Docker: управление контейнерами и образами

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

Обновлено 27 апреля 2026 г.
15-20 мин
Низкая
FixPedia Team
Применимо к:Docker 20.10+Ubuntu 22.04 / 24.04Debian 11+Fedora 36+

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

Docker позволяет запускать приложения в изолированных средах — контейнерах — без конфликтов зависимостей и сложной настройки окружения. Вы можете упаковать веб‑сервер, БД или микросервис в единый образ и разворачивать его на любой машине с Docker. Это ускоряет разработку, тестирование и деплой, а также делает инфраструктуру воспроизводимой.

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

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

  • Сервер или ПК с Linux (Ubuntu 22.04/24.04, Debian 11+ или Fedora 36+).
  • Пользователь с правами sudo.
  • Открытые порты для проброса (если планируете публиковать сервисы наружу).
  • Рекомендуется свежее ядро и актуальный пакетный менеджер.

Пошаговая инструкция

Шаг 1: Установить Docker

Установите Docker Engine и добавьте текущего пользователя в группу docker, чтобы не вводить sudo при каждой команде.

# Ubuntu / Debian
sudo apt update
sudo apt install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release && echo "$ID")/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$(. /etc/os-release && echo "$ID") $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

# Добавить пользователя в группу docker
sudo usermod -aG docker $USER

Перезайдите в сеанс или выполните newgrp docker, чтобы применить права.

Шаг 2: Проверить версию и статус

Убедитесь, что клиент и сервер Docker работают корректно.

docker --version
docker info

Команда docker info покажет количество контейнеров, образов и статус демона. Если вывод выглядит осмысленно и без ошибок подключения — всё готово.

Шаг 3: Найти и скачать образ

Найдите нужный образ и загрузите его локально. Например, официальный образ NGINX или легковесный Alpine.

# Поиск образов (необязательно)
docker search nginx

# Загрузка образа
docker pull nginx:latest
docker pull alpine:latest

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

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

Запустите контейнер с нужными параметрами. Ключи:

  • -d — работа в фоне (detached).
  • -p — проброс портов, например 8080:80.
  • --name — понятное имя контейнера.
docker run -d -p 8080:80 --name web nginx:latest

Теперь веб‑сервер доступен по адресу http://localhost:8080. Чтобы запустить контейнер с интерактивным терминалом, используйте -it, например:

docker run -it --name shell alpine sh

Шаг 5: Управлять контейнерами

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

# Список запущенных контейнеров
docker ps

# Все контейнеры (включая остановленные)
docker ps -a

# Остановить, запустить, перезапустить
docker stop web
docker start web
docker restart web

# Удалить контейнер
docker rm web

Если контейнер всё ещё работает, удалить его можно с ключом -f, но лучше сначала остановить.

Шаг 6: Управлять образами

Просматривайте локальные образы и удаляйте ненужные.

# Список образов
docker images

# Удалить образ (если нет запущенных контейнеров на его базе)
docker rmi nginx:latest

# Принудительное удаление
docker rmi -f nginx:latest

Чтобы освободить место от «висячих» образов (неназванных и неиспользуемых), используйте:

docker image prune

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

Убедитесь, что контейнер работает и сервис доступен:

docker ps
curl -I http://localhost:8080

Вывод curl должен содержать HTTP/1.1 200 OK. Если контейнер не запущен, проверьте логи:

docker logs web

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

  • Ошибка доступа к сокету Docker — добавьте пользователя в группу docker и перезайдите в сеанс.
  • Порт уже занят — выберите другой порт в ключе -p, например -p 8888:80.
  • Контейнер сразу завершается — проверьте команду запуска и логи. Для интерактивных контейнеров нужен -it, а для демонов — точечный ENTRYPOINT или CMD.
  • Не хватает места — удалите неиспользуемые образы и контейнеры через docker system prune.

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

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

В чём разница между образом и контейнером в Docker?
Нужно ли использовать sudo для команд Docker?
Как удалить всё: контейнеры, образы и сети?
Как посмотреть логи конкретного контейнера?

Полезное

Установить Docker
Проверить версию и статус
Найти и скачать образ
Запустить контейнер
Управлять контейнерами
Управлять образами