Инженерам • 16 апреля 2025 • 10 мин чтения

Как запустить контейнер Docker

Контейнеры — это крайне удобный метод запуска приложений в изолированной среде. Их работа абсолютно идентична в условиях любой системы, что позволяет избежать проблем с зависимостями. Разберёмся, как поднять контейнер с нуля: от выбора образа до запуска Docker.

Основные понятия

Docker опирается на три ключевых элемента:

  • Image — это готовый шаблон с программой и всем необходимым.
  • Контейнер — инициированный экземпляр образа.
  • Команда docker run — основной способ запуска.

Начнём с самого базового примера:

docker run hello-world

Что делает docker run — команда вытащит образ из Docker Hub (в том случае, если он отсутствует) и осуществит пуск контейнера. В терминале появится подтверждение, что всё работает корректно.

Пример с параметрами

Для запуска приложения с настройками выполните:
docker run -d -p 8080:80 nginx
  • -d — запускает контейнер Docker в фоновом режиме,это значит, что ваш терминал будет свободен для выполнения других команд.
  • -p 8080:80 — открывает порт 80 контейнера на 8080 порту хоста.
  • nginx — имя образа с веб-сервером.

Запуск с терминалом

Если нужно войти внутрь контейнера:

docker pull ubuntu
docker run -it ubuntu

Сначала загружается базовый образ Ubuntu. Затем — запускается контейнер с подключением терминала (-it). Получаете доступ к окружению, как будто это полноценная система.

📌 Такие команды полезны для тестирования, настройки окружения и локальной разработки.

Получите бесплатно материалы "Как запустить контейнер Docker из GitLab"
Дарим гайд по контейнеру Docker!

Создание контейнера

Пора перейти от базовых примеров к реальной работе. Контейнер можно собрать на основе готового образа или создать свой. После этого его легко запустить единственной командой.

Начнём с готового образа

Допустим, нужно развернуть Ubuntu-систему. Всё начинается с загрузки:

docker pull ubuntu

Теперь можно создать рабочее пространство:

docker run -it ubuntu

Флаг -it включает режим интеракции с терминалом. Вы окажетесь внутри контейнера и получите возможность работать с ним как с обычной системой.
Если нужен простой запуск контейнера без входа внутрь:

docker run -d ubuntu sleep infinity

Такой вариант удобен для фоновых задач — контейнер не завершится, пока работает команда sleep.

Запуск собственного проекта

Если речь о собственном коде, алгоритм такой:

  1. Создаем Dockerfile — это набор инструкций, описывающих сборку.
  2. Собираем образ.
  3. Запускаем контейнер.

Пример Dockerfile для приложения на Python:
FROM python:3.11
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

Собираем образ:
docker build -t my-python-app .
Выполняем запуск:
docker run -d -p 5000:5000 my-python-app
Программа выполняется изолированно – теперь можно открыть его через браузер по адресу localhost:5000.

⚡️ На курсе Docker для админов и разработчиков вы разберётесь во всём с нуля. Уже на первой неделе вы научитесь запускать контейнеры и после обучения будете уверенно работать с томами, сетью, а также docker-compose.

Утилита docker run

docker run — отправная точка в работе с Docker. Она не просто запускает контейнер, но и создаёт его из образа, подключает сеть, пробрасывает порты, выполняет монтирование томов и передачу переменных сред.

Общий синтаксис

docker run [опции] <образ> [команда]

Простой пример:

docker run ubuntu echo "Hello from container"

Здесь из образа ubuntu создается контейнер, выполняется команда echo, затем выполнение завершается.

Часто используемые опции

  • -d — фоновый режим.
  • -it — подключение терминала.
  • --name — задаёт имя контейнера.
  • -p — пробрасывает порты.
  • -v — монтирует тома.
  • --rm — автоматическое удаление контейнера после завершения.
Пример для запуска веб-сервера:

docker run -d -p 8080:80 --name webserver nginx

Контейнер webserver запускается из образа nginx, открывая порт контейнера 80 на 8080 порту хоста.

Работа с томами

Если нужно сохранить данные между перезапусками:

docker run -v /home/user/data:/app/data my-app

Каталог data на хосте теперь доступен внутри контейнера как /app/data.

Передача переменных окружения

Если нужно передать настройки используйте флаг -e:

docker run -e ENV=prod my-app

Это особенно полезно если вы работаете с конфигурацией через переменные среды.

Запуск из образа

Если нужно создать и сразу выполнить запуск контейнера из локального или загруженного образа:
docker run -it my-image-name
Если в интерактивном режиме вы имеете дело с Node.js-проектом:
docker run -it -v ${PWD}:/usr/src/app -w /usr/src/app node bash
Команда монтирует текущую директорию внутрь контейнера и открывает терминал.

Дополнительные флаги

  • --network=host — подключение к сети хоста.
  • --env-file — загрузка переменных окружения из .env файла.
  • --restart=always — автоматический перезапуск при сбоях.
  • --cpus, --memory — ограничение ресурсов.

🚀 Чем чаще вы будете использовать docker run, тем лучше поймете устройство контейнеров, и как их можно оптимизировать под свои задачи.

👨💻 На Docker для админов и разработчиков вы подробно разберете флаги run, научитесь применять их вместе с томами, сетями, переменными среды. Сможете запускать сложные сервисы всего одной командой.

Как создать и запустить образ Docker Image

Образ — основа контейнера. Внутри него находится всё необходимое для того, чтобы приложение работало: код, настройки, зависимости. Собрав образ один раз, можно запускать его где угодно — на любом сервере или машине.

Что такое Dockerfile

Для того, чтобы осуществить сборку образа потребуется Dockerfile. Это пошаговая инструкция: какой образ взять как базовый, куда скопировать файлы, что установить и как выполнить запуск приложения.

Пример Dockerfile для проекта на Python:
FROM python:3.11
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]
Здесь:
  • FROM определяет базовый образ.
  • WORKDIR — рабочая директория внутри контейнера.
  • COPY выполняет перенос файлов в контейнер.
  • RUN выполняет установку зависимостей.
  • CMD запускает приложение во время старта контейнера.

Сборка образа

Перейдите в папку с проектом и выполните:
docker build -t my-python-app .
Флаг -t задаёт имя.Точка справа — указание на директорию, где расположен Dockerfile в текущий момент.

Проверка и запуск

Для того, чтобы увидеть список со всеми доступными образами:

docker images

Образ собран – запускаем контейнер на его основе:
docker run -d -p 5000:5000 my-python-app
После этого приложение доступно по адресу localhost:5000. Оно работает изолированно – все зависимости уже внутри образа.

Советы по созданию

  • Минимизируйте образ. Используйте облегчённые версии, например: python:3.11-slim.
  • Добавьте .dockerignore. Этот файл исключает ненужные файлы из сборки, как .gitignore.
  • Учитывайте кэш. Docker сохраняет шаги сборки. Если не менять порядок инструкций, сборка будет быстрее.
  • Прибегайте к многостадийной сборке. Это эффективно для языков вроде Go или Java, где нужно разделять этапы сборки и выполнения

Пример для Node.js

FROM node:20
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "index.js"]
Сборка и запуск:
docker build -t my-node-app .
docker run -p 3000:3000 my-node-app
📌 Собрав образ, вы можете залить его в Docker Hub, передать команде, а также использовать в CI/CD-пайплайне.

Начните бесплатно изучать запуск контейнера Docker!
Дарим демодоступ к обучению на 1 день, чтобы вы познакомились с материалами и спикерами курса.

Заключение

Теперь у вас есть чёткое понимание, как работать с Docker: от запуска базовых контейнеров до создания собственных образов. Мы разобрали:

  • как запускать образы из Docker Hub;
  • как создавать контейнеры и управлять их параметрами;
  • как писать Dockerfile и собирать образы;
  • как использовать команду docker run с разными опциями.

Эти знания пригодятся не только при разработке, но и при тестировании, деплое, создании инфраструктуры и автоматизации процессов.

Контейнеризация помогает:

  • быстрее запускать проекты;
  • избавиться от проблем с окружением;
  • масштабировать сервисы по мере роста нагрузки.

📌 Docker уже давно является стандартом для DevOps, backend-разработки и системного администрирования. Умение работать с ним — важный навык в современном IT.

🔥 Хотите двигаться дальше? Освойте Docker с нуля за 3 недели на курсе Docker для админов и разработчиков. Вас ждут:

  • пошаговые практики с примерами из реальных проектов;
  • работа с томами, сетью, Docker Compose;
  • оптимизация образов и автоматизация процесса сборки;
  • сертификат и портфолио для работодателя.

Контейнеры — это удобный инструмент, с которого начинается путь к современной и гибкой инфраструктуре. Попробуйте сами — и вы быстро увидите, насколько это упрощает работу.

Удачи с Docker!

Статью подготовили

Редакция Слёрма
Понравилась статья? Будем рады вашему лайку и репосту — вдруг кому-то тоже пригодится:)
Оцените статью

Читайте также: