← Назад к вопросам

Какая команда используется для запуска Docker контейнера?

2.0 Middle🔥 131 комментариев
#Python Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Команда для запуска Docker контейнера

Основная и наиболее часто используемая команда — это docker run. Это универсальная команда, которая создаёт и запускает новый контейнер из образа (image).

Базовый синтаксис

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Примеры:

# Запустить простой контейнер
docker run ubuntu

# Запустить с интерактивным режимом
docker run -it ubuntu /bin/bash

# Запустить в фоновом режиме (detached mode)
docker run -d nginx

Основные флаги и опции

Наиболее часто используемые:

ФлагОписаниеПример
-d, --detachЗапуск в фонеdocker run -d nginx
-itИнтерактивный режим + TTYdocker run -it ubuntu bash
-p, --publishПробросить портыdocker run -p 8080:80 nginx
-e, --envУстановить переменные окруженияdocker run -e DB_HOST=localhost postgres
--nameНазвать контейнерdocker run --name my-app nginx
-v, --volumeПодключить том (volume)docker run -v /host/path:/container/path nginx
--rmУдалить контейнер при остановкеdocker run --rm ubuntu
--networkПодключить к сетиdocker run --network my-network nginx

Практические примеры

Запуск приложения на Python

# Запустить Python скрипт
docker run python:3.11 python script.py

# С подключением тома для исходного кода
docker run -v $(pwd):/app python:3.11 python /app/script.py

Запуск веб-приложения

# Запустить Flask приложение на порте 5000
docker run -p 5000:5000 -d -e FLASK_ENV=production my-flask-app

# Запустить с логированием
docker run -p 5000:5000 -d --name flask-app my-flask-app

Запуск с переменными окружения

# Передать переменные напрямую
docker run -d \
  -e DATABASE_URL=postgresql://user:pass@db:5432/mydb \
  -e DEBUG=True \
  --name backend my-backend-app

# Из файла .env
docker run --env-file .env -d my-app

Альтернативные команды

docker start

Запускает уже существующий контейнер:

# Сначала создаём контейнер
docker create --name my-container nginx

# Затем запускаем его
docker start my-container

docker exec

Запускает команду внутри уже работающего контейнера:

# Открыть shell в работающем контейнере
docker exec -it my-container /bin/bash

# Выполнить команду
docker exec my-container python script.py

docker compose up

Для запуска нескольких контейнеров (более сложные сценарии):

# Запустить все сервисы из docker-compose.yml
docker compose up -d

# С пересборкой образов
docker compose up -d --build

Полезные команды для управления

# Просмотреть запущенные контейнеры
docker ps

# Просмотреть все контейнеры (включая остановленные)
docker ps -a

# Остановить контейнер
docker stop container-name

# Удалить контейнер
docker rm container-name

# Просмотреть логи контейнера
docker logs -f container-name

Лучшие практики

  1. Всегда используйте --name для идентификации контейнеров
  2. Используйте -d для фоновых приложений (веб-серверы, БД)
  3. Используйте -it для интерактивной работы (дебаг, тестирование)
  4. Пробрасывайте порты явно через -p
  5. Используйте --rm для временных контейнеров (чистка памяти)
  6. Логируйте вывод через docker logs
  7. Для production используйте docker compose вместо отдельных run команд

Итог

docker run — это главная и наиболее универсальная команда для запуска контейнеров. Она объединяет операции создания и запуска в одну команду, что делает её самой удобной для большинства сценариев разработки и тестирования.