Какие команды Docker вы используете чаще всего?

«Какие команды Docker вы используете чаще всего?» — вопрос из категории Docker, который задают на 24% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

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

  • docker build -t myapp:latest . — сборка образа из Dockerfile в текущей директории. Всегда указываю тег для удобства.
  • docker run -d --name my-container -p 8080:80 myapp:latest — запуск контейнера в фоновом режиме с пробросом портов. Ключи -e для переменных окружения и -v для томов тоже используются постоянно.
  • docker ps — просмотр запущенных контейнеров. docker ps -a показывает все, включая остановленные, что помогает при очистке.
  • docker stop/start/restart my-container — управление состоянием.
  • docker logs -f my-container — «хвост» логов контейнера в реальном времени для отладки.
  • docker exec -it my-container /bin/bash — интерактивное подключение к запущенному контейнеру для исследования или выполнения команд.
  • docker rm -f my-container и docker rmi myapp:old — удаление контейнеров и образов для освобождения места.

Работа с образами:

  • docker images — список локальных образов.
  • docker pull/push — работа с реестрами (Docker Hub, GitLab Registry, ECR).

Для сетей и томов:

  • docker network ls и docker network inspect — диагностика сетей, особенно когда контейнеры не могут «увидеть» друг друга.
  • docker volume create — создание именованных томов для сохранения данных.

Для оркестрации нескольких сервисов:

  • docker-compose up -d и docker-compose down — основной способ локального запуска стека из нескольких контейнеров (приложение + БД + кэш) для разработки и тестирования. Файл docker-compose.yml — это стандарт в моих проектах.

Эти команды — основа для написания скриптов развертывания, отладки и обслуживания контейнеризированных приложений.