Что такое Docker Compose?
Разберитесь в назначении Docker Compose и в том, как он управляет приложениями из нескольких контейнеров.
«Что такое Docker Compose?» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.
Добро пожаловать в Docker Compose!
Добро пожаловать! До сих пор Вы учились запускать отдельные контейнеры. Но что делать, если приложению требуется больше одного контейнера?
Большинство реальных приложений состоит не из одного контейнера. Обычно в них есть веб-сервер, база данных, кэш и другие компоненты!

Задача с несколькими контейнерами
Представьте, что Вы запускаете веб-приложение с базой данных. Для каждого компонента потребуются отдельные команды docker run.
Вскоре это становится сложно! Как им взаимодействовать друг с другом? Как запустить их все в правильном порядке?
Ручное управление несколькими контейнерами и их связями может быть утомительным и приводить к ошибкам.
Знакомьтесь: Docker Compose
Именно здесь пригодится Docker Compose! Это инструмент для описания и запуска приложений Docker, состоящих из нескольких контейнеров.
Вместо множества отдельных команд docker run Вы описываете весь стек приложения в одном файле конфигурации.
Файл Compose: docker-compose.yml
Docker Compose использует файл с именем docker-compose.yml (или аналогичным), чтобы настроить службы приложения.
В этом файле используется простой, понятный человеку формат YAML (Yet Another Markup Language) для описания всех компонентов.
Это своего рода чертёж всего приложения.
Что такое службы в Compose
В файле docker-compose.yml каждая часть приложения называется службой.
- Обычно служба представляет один контейнер.
- Вы указываете, какой образ Docker она использует.
- Вы можете настроить её порты, тома, переменные окружения, зависимости и многое другое!
Compose управляет сетью
Одно из важных преимуществ Docker Compose — упрощение сетевого взаимодействия между контейнерами.
По умолчанию Compose создаёт одну сеть для всех служб, определённых в файле docker-compose.yml.
Благодаря этому службы (например, веб-приложение и база данных) легко взаимодействуют друг с другом, используя имена служб в качестве имён хостов.
Управление данными с помощью Compose
Как и приложениям с одним контейнером, приложениям с несколькими контейнерами часто требуются данные с сохранением.
Docker Compose позволяет описывать и управлять томами в файле docker-compose.yml.
Это гарантирует, что, например, данные базы данных не будут потеряны при остановке или удалении контейнеров, и обеспечивает целостность данных.
Простой рабочий процесс Compose
Когда файл docker-compose.yml готов, запустить всё приложение очень просто!
Перейдите в каталог, содержащий этот файл, и выполните команду docker compose up.
Эта команда собирает (если необходимо), создаёт, запускает контейнеры всех служб, определённых в файле, и подключается к ним.
Зачем использовать Compose: основные преимущества
Docker Compose предлагает несколько преимуществ, особенно в средах разработки и тестирования:
- Одна команда: запускайте и останавливайте всё приложение одной командой.
- Воспроизводимость: гарантирует, что все используют абсолютно одинаковую настройку.
- Изоляция: службы работают в изолированных средах.
- Упрощение разработки: отлично подходит для локальной разработки и быстрого тестирования.
Быстрая проверка!
Вы узнали об основной идее Docker Compose.
Давайте проверим, сможете ли Вы определить его главное предназначение!
Итоги: оркестрация приложений
Отличная работа! Теперь Вы понимаете основную концепцию Docker Compose.
- Он упрощает запуск приложений с несколькими контейнерами.
- Для описания всех служб используется один файл YAML (
docker-compose.yml). - Он управляет сетевым взаимодействием и сохранением данных служб.
- Он значительно упрощает разработку и развёртывание сложных приложений!
Далее Вы узнаете, как написать свой первый файл docker-compose.yml!
Часто задаваемые вопросы
Урок «Что такое Docker Compose?» бесплатный?
Да — полный текст урока «Что такое Docker Compose?» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Что такое Docker Compose?»?
Разберитесь в назначении Docker Compose и в том, как он управляет приложениями из нескольких контейнеров. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «Что такое Docker Compose?»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Что такое Docker Compose?
- Написание файла Compose
- Развёртывание приложений из нескольких сервисов
- Переменные окружения и файлы .env