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

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

1.2 Junior🔥 262 комментариев
#Docker и контейнеризация

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

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

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

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

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

Синтаксис и базовое использование

docker run [ОПЦИИ] ИМЯ_ОБРАЗА [КОМАНДА] [АРГУМЕНТЫ...]

Примеры использования команды docker run

1. Простейший запуск контейнера:

docker run nginx

Эта команда скачает образ nginx (если его нет локально) и запустит контейнер в интерактивном режиме, привязав его к текущему терминалу.

2. Запуск контейнера в фоновом режиме (демонизация):

docker run -d --name my_nginx nginx
  • -d (detached) — запуск в фоновом режиме
  • --name — присвоение имени контейнеру для удобства управления

3. Запуск с пробросом портов:

docker run -d -p 8080:80 --name web_server nginx
  • -p 8080:80 — пробрасывает порт 8080 хоста на порт 80 контейнера

4. Запуск с монтированием томов:

docker run -d -v /home/user/data:/app/data --name app_container my_app
  • -v — монтирует директорию хоста в контейнер для сохранения данных

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

docker run -d -e "DATABASE_URL=postgres://user:pass@host/db" --name api my_api_image
  • -e — устанавливает переменные окружения внутри контейнера

Ключевые опции команды docker run

  • -it — запуск в интерактивном режиме с псевдо-TTY (для интерактивных сессий)

    docker run -it ubuntu /bin/bash
    
  • --rm — автоматическое удаление контейнера после остановки

    docker run --rm alpine echo "Hello, World!"
    
  • --network — подключение к определенной Docker-сети

    docker run --network my_network --name service1 my_service
    
  • --restart — политика перезапуска контейнера

    docker run -d --restart unless-stopped my_service
    

Альтернативные команды для управления контейнерами

Хотя docker run является основной командой для запуска, в Docker есть и другие важные команды для управления жизненным циклом контейнеров:

  1. docker start — запуск уже существующего остановленного контейнера

    docker start my_container
    
  2. docker create — создание контейнера без его запуска

    docker create --name my_container nginx
    
  3. docker-compose up — запуск многоконтейнерных приложений (часть Docker Compose)

    docker-compose up -d
    

Практические рекомендации

Для продакшн-среды команду docker run обычно используют с дополнительными опциями для безопасности и стабильности:

  • Ограничение ресурсов (--memory, --cpus)
  • Настройка политик безопасности (--security-opt)
  • Использование пользовательских сетей
  • Конфигурация через Docker Compose или оркестраторы (Kubernetes)

Важное замечание: Каждый вызов docker run создает новый контейнер. Если вам нужно перезапустить существующий контейнер, правильнее использовать связку docker stop + docker start или docker restart.

Команда docker run является фундаментальной в экосистеме Docker и понимание ее опций критически важно для эффективной работы с контейнерами в DevOps-практиках. В современных средах она часто инкапсулируется в Docker Compose файлы или манифесты Kubernetes, но под капотом именно она отвечает за создание и запуск контейнеров.

Какая команда запускает контейнер в Docker? | PrepBro