← Назад к вопросам
Какая команда используется для запуска 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 | Интерактивный режим + TTY | docker 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
Лучшие практики
- Всегда используйте
--nameдля идентификации контейнеров - Используйте
-dдля фоновых приложений (веб-серверы, БД) - Используйте
-itдля интерактивной работы (дебаг, тестирование) - Пробрасывайте порты явно через
-p - Используйте
--rmдля временных контейнеров (чистка памяти) - Логируйте вывод через
docker logs - Для production используйте
docker composeвместо отдельных run команд
Итог
docker run — это главная и наиболее универсальная команда для запуска контейнеров. Она объединяет операции создания и запуска в одну команду, что делает её самой удобной для большинства сценариев разработки и тестирования.