Ответ
В ежедневной работе с 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— это стандарт в моих проектах.
Эти команды — основа для написания скриптов развертывания, отладки и обслуживания контейнеризированных приложений.