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

Ответ

В ежедневной работе с 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 — это стандарт в моих проектах.

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

Ответ 18+ 🔞

Э, слушай, я тут каждый день с 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 — куда скажут.

Для сетей и прочей ерунды:

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

А для настоящей магии, когда сервисов несколько:

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

Вот этот набор — он как отвёртка и паяльник. Без него скрипты не напишешь, приложение не отладишь и вообще чувствуешь себя беспомощным, как мартышлюшка. Но с ним — уже хоть что-то понятно, и волнение ебать поутихает.