Олег Марков
Запуск контейнеров (run) в Docker
Введение
Добро пожаловать в мир Docker! Если вы здесь, значит, вы хотите научиться запускать контейнеры в Docker. Docker стал стандартом для контейнеризации, предоставляя разработчикам и системным администраторам мощный инструмент для создания и выполнения контейнеров. Команда docker run - одна из самых базовых и одновременно многофункциональных команд в Docker, которую стоит освоить в первую очередь.
Контейнеры представляют собой легковесные виртуальные окружения, которые позволяют изолировать процессы и приложения друг от друга. С помощью Docker мы можем запускать контейнеры, управлять ими, искать и загружать образы из Docker Hub или других репозиториев. Сегодня мы сфокусируемся на запуске контейнеров с помощью команды docker run.
Запуск контейнеров с помощью команды docker run — это основа работы с Docker. Важно понимать, как правильно использовать эту команду, передавать переменные окружения и управлять портами. Если вы хотите детальнее погрузиться в тонкости запуска контейнеров в Docker, а также узнать, как использовать различные опции команды docker run для решения различных задач, приходите на наш большой курс Docker + Ansible - с нуля. На курсе 159 уроков и 7 упражнений, AI-тренажеры для безлимитной практики с кодом и задачами 24/7, решение задач с живым ревью наставника, еженедельные встречи с менторами.
Как запустить контейнер с помощью docker run
Основная команда, которую мы используем для запуска контейнера, выглядит следующим образом:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
Расшифруем это. Прежде всего, IMAGE - это образ, из которого запускается контейнер. Docker Hub предлагает множество предварительно созданных образов для различных нужд, но вы также можете создать свои собственные.
Простой запуск контейнера
Давайте начнем с простого примера. Вот как можно запустить контейнер из популярного образа hello-world:
docker run hello-world
Этот код загружает образ hello-world из Docker Hub (если он еще не загружен) и запускает его. В результате вы должны увидеть приветственное сообщение, информирующее о том, что Docker установлен и работает корректно.
Основные опции docker run
docker run предоставляет множество опций для управления контейнерами. Давайте рассмотрим наиболее часто используемые из них.
-d или --detach
Если вы хотите запустить контейнер в фоновом режиме, используйте флаг -d. Это удобно, если вы не хотите, чтобы ваш терминал был занят.
docker run -d nginx
С правым вызовом выше контейнер запустится в фоновом режиме, и вы сможете продолжать использовать терминал. Nginx начнет работать внутри контейнера.
-p или --publish
Вы можете сопоставить порты вашего локального компьютера с портами внутри контейнера с помощью -p. Это полезно для проброса портов, чтобы ваш сервис внутри контейнера был доступен извне.
docker run -d -p 8080:80 nginx
Как вы видите, запросы на http://localhost:8080 будут перенаправлены на порт 80 внутри контейнера, где работает Nginx.
-e или --env
Иногда вам потребуется передать переменные окружения в контейнер. Это можно сделать с помощью опции -e.
docker run -e MY_ENV_VAR=my_value ubuntu env
В данном примере мы запускаем образ ubuntu и используем команду env для вывода всех переменных окружения. Вы увидите MY_ENV_VAR среди них с установленным значением my_value.
--name
Вы можете дать своему контейнеру уникальное имя. Это удобно для последующего обращения к контейнеру.
docker run --name my_nginx -d nginx
Теперь ваш контейнер называется my_nginx, и вы можете ссылаться на него по имени.
Продвинутые возможности
Запуск интерактивного контейнера
Иногда вы хотите взаимодействовать с контейнером напрямую. Это можно сделать, запустив его в интерактивном режиме с флагом -it.
docker run -it ubuntu /bin/bash
Теперь вы находитесь в интерактивной командной строке внутри вашего контейнера ubuntu. Это удобно для выполнения ручных проверок или отладки.
Ограничение ресурсов
Docker позволяет задавать лимиты на использование ресурсов. Например, чтобы ограничить память до 512 MB, используйте флаг --memory.
docker run -d --memory="512m" nginx
Это полезная функция для предотвращения потребления приложения больше ресурсов, чем вы хотите ему выделить.
Заключение
Вот и все, теперь вы знаете, как использовать команду docker run для запуска контейнеров в Docker. Мы охватили как базовые, так и более продвинутые функции, необходимые для успешного управления контейнерами. Помните, что контейнеры могут быть мощным инструментом для изоляции и развертывания приложений с минимальными усилиями. Экспериментируйте с различными флагами и опциями docker run, чтобы лучше почувствовать, как они могут улучшить ваши рабочие процессы. Надеюсь, эта статья помогла вам понять основные и расширенные возможности запуска контейнеров в Docker.
Запуск контейнеров с помощью docker run — это базовый навык. Для полноценной работы необходимо освоить Docker Compose и Ansible для автоматизации запуска и управления контейнерами в сложных окружениях. На нашем курсе Docker + Ansible - с нуля вы научитесь всему необходимому для работы с Docker, включая инструменты для автоматизации. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир Docker прямо сегодня и станьте экспертом.
Постройте личный план изучения Docker до уровня Middle — бесплатно!
Docker — часть карты развития DevOps
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Бесплатные лекции
Все гайды по Docker
Лучшие курсы по теме

Docker и Ansible
Антон Ларичев
Основы Linux
Антон Ларичев