JavaRush /Курсы /Модуль 2: Fullstack /Запуск приложений и сервисов

Запуск приложений и сервисов

Модуль 2: Fullstack
14 уровень , 3 лекция
Открыта

4.1 Команда docker compose up

Команда docker compose up является ключевой командой Docker Compose, которая позволяет запускать многоконтейнерные приложения, определённые в файле compose.yaml. Она автоматически создаёт и запускает все сервисы, указанные в конфигурации, настраивает сети и монтирует тома. В этой лекции мы подробно рассмотрим использование команды docker compose up, её основные параметры и лучшие практики.

Основные функции команды docker compose up

  1. Создание и запуск контейнеров: команда docker compose up создаёт и запускает все контейнеры, указанные в разделе services файла compose.yaml.
  2. Настройка сетей и томов: Docker Compose автоматически создаёт необходимые сети и монтирует тома, указанные в конфигурации.
  3. Параллельный запуск сервисов: все сервисы запускаются параллельно, что ускоряет процесс запуска многоконтейнерных приложений.
  4. Мониторинг логов: команда выводит логи всех запущенных контейнеров в режиме реального времени, что позволяет следить за их состоянием и быстро выявлять проблемы.

Синтаксис команды docker compose up


docker compose up [options] [SERVICE...]

Где:

  • [options]: дополнительные параметры для настройки поведения команды (например, --detach, --build, --scale).
  • [SERVICE...]: (необязательно) список сервисов, которые нужно запустить. Если не указано, запускаются все сервисы.

4.2 Примеры docker compose up

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

1. Запуск всех сервисов

Запуск всех сервисов, определённых в файле compose.yaml:

Terminal

docker compose up

2. Запуск конкретного сервиса

Запуск конкретного сервиса, например, web:

Terminal

docker compose up web

3. Запуск в фоновом режиме

Для запуска всех сервисов в фоновом режиме используйте опцию -d (detached mode):

Terminal

docker compose up -d

При использовании этой опции команда завершится сразу после запуска контейнеров, и они будут работать в фоновом режиме.

4.3 Параметры команды docker compose up

Полезные параметры команды docker compose up:

1. Параметр --build

Этот параметр заставляет Docker Compose пересобрать образы перед запуском контейнеров. Полезен, если вы внесли изменения в исходный код или Dockerfile.

Terminal

docker compose up --build

2. Параметр --force-recreate

Параметр --force-recreate заставляет Docker Compose пересоздать контейнеры, даже если их конфигурация не изменилась.

Terminal

docker compose up --force-recreate

3. Параметр --no-recreate

Параметр --no-recreate предотвращает пересоздание контейнеров, которые уже существуют, даже если их конфигурация изменилась.

Terminal

docker compose up --no-recreate

4. Параметр --remove-orphans

Этот параметр удаляет контейнеры, которые не определены в текущем файле compose.yaml, но были созданы предыдущими запусками Docker Compose.

Terminal

docker compose up --remove-orphans

5. Параметры -V, --renew-anon-volumes

Эти параметры заставляют Docker Compose пересоздать анонимные тома вместо их повторного использования.

Terminal

docker compose up -V

4.4 Примеры и рекомендации

Примеры использования команды docker compose up с различными опциями:

Пример 1: запуск приложения с пересборкой образов

Этот пример пересобирает образы перед запуском контейнеров, что полезно, если вы внесли изменения в исходный код или Dockerfile.

Terminal

docker compose up --build

Пример 2: запуск в фоновом режиме с пересозданием контейнеров

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

Terminal

docker compose up -d --force-recreate

Пример 3: запуск конкретного сервиса с удалением ненужных контейнеров

Этот пример запускает только сервис web и удаляет контейнеры, не определённые в текущем файле compose.yaml.

Terminal

docker compose up web --remove-orphans

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

1. Использование .env файла

Вы можете использовать файл .env для определения переменных среды, которые будут использоваться в вашем compose.yaml. Это помогает управлять конфигурацией и упрощает процесс развертывания в разных окружениях.

2. Логи и мониторинг

Когда вы запускаете контейнеры с помощью команды docker compose up, все логи выводятся в консоль. Это позволяет следить за состоянием сервисов и быстро реагировать на возникающие проблемы. Для детального мониторинга используйте команды docker compose logs и docker compose ps.

3. Автоматизация сборки и развертывания

Интеграция команды docker compose up в скрипты автоматизации или пайплайны CI/CD помогает автоматизировать процесс сборки и развертывания многоконтейнерных приложений. Например, вы можете настроить Jenkins или GitHub Actions для автоматической сборки, деплоя и запуска docker compose up при каждом обновлении кода.

3
Задача
Модуль 2: Fullstack, 14 уровень, 3 лекция
Недоступна
Запуск всех сервисов
Запуск всех сервисов
3
Задача
Модуль 2: Fullstack, 14 уровень, 3 лекция
Недоступна
Запуск в фоновом режиме
Запуск в фоновом режиме
3
Задача
Модуль 2: Fullstack, 14 уровень, 3 лекция
Недоступна
Пересоздание контейнеров
Пересоздание контейнеров
3
Задача
Модуль 2: Fullstack, 14 уровень, 3 лекция
Недоступна
Пересборка образов и запуск
Пересборка образов и запуск
Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Виктория Уровень 47
13 июня 2025
В лекции есть такой момент: docker compose UP --remove-orphans. Этот параметр удаляет контейнеры, которые не определены в текущем файле compose.yaml, но были созданы предыдущими запусками. В следующей лекции разбирается docker compose DOWN --remove-orphans. Параметр --remove-orphans удаляет контейнеры, которые не определены в текущем файле compose.yaml, но были созданы предыдущими запусками, т.е. описания одинаковые, но поведение команд разное должно быть. Если я правильно поняла, то: down --remove-orphans = очистка: удаляет текущие и "лишние" (контейнеры без описания в compose-файле). up --remove-orphans = запуск: запускает только нужные, предварительно удаляя все "лишнее". Или я что-то не так понимаю?
Константин Contact Уровень 20
15 апреля 2025
task14! Это они, конечно, загнули 🤨