4.1 Команда docker compose up
Команда docker compose up є ключовою командою Docker Compose, яка дозволяє запускати багатоконтейнерні застосунки, визначені у файлі compose.yaml. Вона автоматично створює та запускає всі сервіси, вказані в конфігурації, налаштовує мережі та монтує томи. У цій лекції ми детально розглянемо використання команди docker compose up, її основні параметри та найкращі практики.
Основні функції команди docker compose up
- Створення та запуск контейнерів: команда
docker compose upстворює та запускає всі контейнери, вказані в розділіservicesфайлуcompose.yaml. - Налаштування мереж і томів: Docker Compose автоматично створює необхідні мережі та монтує томи, вказані в конфігурації.
- Паралельний запуск сервісів: всі сервіси запускаються одночасно, що пришвидшує процес запуску багатоконтейнерних застосунків.
- Моніторинг логів: команда виводить логи всіх запущених контейнерів у реальному часі, що дозволяє стежити за їх станом та швидко виявляти проблеми.
Синтаксис команди docker compose up
docker compose up [options] [SERVICE...]
Де:
-
[options]: додаткові параметри для налаштування поведінки команди (наприклад,--detach,--build,--scale). -
[SERVICE...]: (необов’язково) список сервісів, які потрібно запустити. Якщо не вказано, запускаються всі сервіси.
4.2 Приклади docker compose up
Приклади використання команди docker compose up:
1. Запуск усіх сервісів
Запуск усіх сервісів, визначених у файлі compose.yaml:
docker compose up
2. Запуск конкретного сервісу
Запуск конкретного сервісу, наприклад, web:
docker compose up web
3. Запуск у фоновому режимі
Для запуску усіх сервісів у фоновому режимі використовуйте опцію -d (detached mode):
docker compose up -d
При використанні цієї опції команда завершиться одразу після запуску контейнерів, і вони працюватимуть у фоновому режимі.
4.3 Параметри команди docker compose up
Корисні параметри команди docker compose up:
1. Параметр --build
Цей параметр змушує Docker Compose пересобирати образи перед запуском контейнерів. Корисно, якщо ти вніс зміни в вихідний код чи Dockerfile.
docker compose up --build
2. Параметр --force-recreate
Параметр --force-recreate змушує Docker Compose пересоздати контейнери, навіть якщо їх конфігурація не змінилась.
docker compose up --force-recreate
3. Параметр --no-recreate
Параметр --no-recreate перешкоджає пересозданню контейнерів, які вже існують, навіть якщо їх конфігурація змінилась.
docker compose up --no-recreate
4. Параметр --remove-orphans
Цей параметр видаляє контейнери, які не визначені у поточному файлі compose.yaml, але були створені попередніми запусками Docker Compose.
docker compose up --remove-orphans
5. Параметри -V, --renew-anon-volumes
Ці параметри змушують Docker Compose пересоздати анонімні томи замість їх повторного використання.
docker compose up -V
4.4 Приклади і рекомендації
Приклади використання команди docker compose up з різними опціями:
Приклад 1: запуск застосунку з перескладанням образів
Цей приклад перескладає образи перед запуском контейнерів, що корисно, якщо ви внесли зміни у вихідний код або Dockerfile.
docker compose up --build
Приклад 2: запуск у фоновому режимі з пересозданням контейнерів
Цей приклад запускає контейнери у фоновому режимі та пересоздає їх, навіть якщо конфігурація не змінилася.
docker compose up -d --force-recreate
Приклад 3: запуск конкретного сервісу з видаленням зайвих контейнерів
Цей приклад запускає лише сервіс web і видаляє контейнери, які не визначені у поточному файлі compose.yaml.
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 при кожному оновленні коду.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ