Гайд по основным командам в Docker
Docker уже давно стал стандартным инструментом для контейнеризации приложений, а этот материал поможет разобраться в базовых командах, которые нужны для повседневной работы.
Как устроены команды Docker
Большинство команд Docker строятся по простой схеме: docker + команда и дополнительные параметры и флаги.
Начать лучше всего с команд, которые пригодятся в любой консольной утилите: просмотр версии и встроенная справка.
Проверить версию Docker:
docker --version
Открыть общую справку по Docker:
docker --help
Если нужно подробнее разобраться с конкретной командой, можно запросить справку именно по ней — так вы увидите все доступные флаги и варианты использования. Например, для run:
docker run --help
Работа с образами Docker
Образы — это основа контейнеров. Внутри образа лежит всё необходимое для запуска приложения: код, окружение выполнения, библиотеки и зависимости.
Далее мы покажем ключевые команды, которые помогают искать, скачивать, собирать и удалять образы.
Поиск образов
Прежде чем использовать образ, его нужно найти в реестре. По умолчанию Docker работает с Docker Hub, где доступны тысячи готовых образов.
Поиск, например, nginx:
sudo docker search nginx
Команда покажет список найденных вариантов с описанием и рейтинговыми показателями. Так проще выбрать популярный и поддерживаемый образ.
Загрузка (pull) образов
Когда нужный образ найден, его можно скачать на сервер. Чтобы забрать последнюю версию выполните:
sudo docker pull nginx
Если нужна конкретная версия, то укажите это:
sudo docker pull nginx:1.25.3
Просмотр локальных образов
Чтобы увидеть все образы, которые уже есть на системе выполните команду:
sudo docker images
Обычно вывод включает имя репозитория, тег, ID образа, дату создания и размер.
Сборка своего образа
Если вам нужен собственный образ, его обычно собирают из Dockerfile. Пример простого Dockerfile в текущей папке:
FROM ubuntu:24.04
RUN apt update && apt install -y nginx
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
Этот Dockerfile создаёт образ на базе Ubuntu 24.04, устанавливает Nginx и запускает его как веб-сервер.
Сборка образа:
sudo docker build -t myapp:1.0 .
Флаг -t задаёт имя и версию (тег). Точка в конце означает, что контекст сборки — текущий каталог, и Docker будет искать Dockerfile именно там.
Удаление образов
Чтобы удалить ненужный образ:
sudo docker rmi nginx:latest
Если образ используется запущенным или остановленным контейнером, Docker не даст его удалить. Тогда сначала удаляют контейнер, либо используют принудительное удаление:
docker rm container_name
docker rmi -f nginx:latest
Управление контейнерами Docker
Контейнер — это запущенный экземпляр образа. Для практической работы важно уметь запускать контейнеры, смотреть список, останавливать, перезапускать и удалять.
Запуск контейнера
Самый простой запуск контейнера из образа:
sudo docker run nginx
Но так контейнер работает в «переднем плане» и занимает терминал. В реальной работе чаще используют фоновый режим:
sudo docker run -d nginx
Также удобно пробрасывать порты и давать контейнеру понятное имя:
sudo docker run -d -p 8080:80 --name my-webserver nginx
Здесь -d запускает в фоне, -p 8080:80 маппит порт 8080 на хосте к порту 80 внутри контейнера, а —name задаёт имя my-webserver.
Список контейнеров
Показать только запущенные контейнеры:
sudo docker ps
Показать все контейнеры, включая остановленные:
sudo docker ps -a
Остановка, запуск и перезапуск
Сначала обычно смотрят, какие контейнеры есть в системе:
sudo docker ps -a
Остановить контейнер:
sudo docker stop my-webserver
Запустить остановленный контейнер:
sudo docker start my-webserver
Перезапустить контейнер (остановка + запуск):
sudo docker restart my-webserver
Удаление контейнеров
Удалить контейнер:
sudo docker rm test
Если контейнер запущен, Docker не позволит удалить его без дополнительных действий. Варианты два: сначала остановить, либо удалить принудительно:
sudo docker rm -f test
Флаг -f завершает контейнер сразу, без «мягкого» выключения, поэтому использовать его лучше осознанно.
Мониторинг и отладка контейнеров
Чтобы поддерживать контейнеры в рабочем состоянии и быстрее разбираться с проблемами, полезно знать несколько команд для логов, доступа внутрь контейнера и диагностики.
Просмотр логов
Показать логи контейнера:
sudo docker logs awesome_heyrovsky
Следить за логами в реальном времени (аналог tail -f):
sudo docker logs -f awesome_heyrovsky
Выполнение команд внутри контейнера
Один из самых удобных инструментов Docker — возможность зайти внутрь запущенного контейнера и выполнить команды прямо в его окружении:
sudo docker exec -it test /bin/bash
Флаги -it открывают интерактивный терминал, чтобы можно было «пощупать» файлы, посмотреть конфиги и отладить поведение приложения.
Просмотр подробной информации о контейнере
Команда inspect выводит детальные данные о контейнере в JSON: конфигурацию, сеть, тома, переменные окружения и текущее состояние.
sudo docker inspect test
Нагрузка и потребление ресурсов
Посмотреть, сколько CPU/RAM и I/O используют контейнеры в реальном времени:
sudo docker stats
Очистка и обслуживание Docker
Со временем Docker накапливает остановленные контейнеры, неиспользуемые образы, сети и прочие хвосты. Периодическая уборка помогает освободить место и держать окружение в порядке.
Удалить все остановленные контейнеры:
sudo docker container prune
Удалить неиспользуемые образы:
sudo docker image prune
Теперь вы знаете базовый набор команд Docker, который покрывает основные задачи: поиск и скачивание образов, запуск и управление контейнерами, просмотр логов и диагностика, а также поддержание порядка через регулярную очистку.