Гайд по основным командам в Docker

Гайд по основным командам в 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, который покрывает основные задачи: поиск и скачивание образов, запуск и управление контейнерами, просмотр логов и диагностика, а также поддержание порядка через регулярную очистку.