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

Наш пример: веб-приложение и база данных
Мы развернём простое веб-приложение, подключающееся к базе данных. Это распространённая конфигурация для многих реальных приложений.
- Веб-сервис: приложение на Python Flask, отображающее простую веб-страницу.
- Сервис базы данных: база данных PostgreSQL для хранения данных.
Docker Compose упрощает оркестрацию этих двух сервисов!
Создание веб-образа
Нашему веб-сервису нужен собственный образ Docker. Ниже приведён упрощённый Dockerfile, который собирает наше приложение на Python Flask.
Он устанавливает Flask и соединитель PostgreSQL, а затем запускает app.py.
FROM python:3.9-slim-buster
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir flask psycopg2-binary
EXPOSE 5000
CMD ["python", "app.py"]Файл `docker-compose.yml`
Этот файл docker-compose.yml определяет два наших сервиса: web и db. Обратите внимание, что сервис web собирается из нашего Dockerfile и подключается к сервису db с помощью переменных окружения.
version: '3.8'
services:
web:
build: .
ports:
- "5000:5000"
environment:
DB_HOST: db
DB_NAME: mydatabase
DB_USER: user
DB_PASSWORD: password
depends_on:
- db
db:
image: postgres:13
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:Запуск сервисов
Чтобы запустить все сервисы, определённые в файле docker-compose.yml, используйте команду docker compose up.
Флаг -d запускает контейнеры в фоновом режиме, то есть они продолжают работать в фоне.
# This command starts your multi-service app
# and runs it in the background.
docker compose up -dПроверка работающих контейнеров
После выполнения команды docker compose up -d следует проверить, работают ли все сервисы как ожидается.
Команда docker compose ps выводит список сервисов, их состояние и порты.
# Check the status of your services
docker compose psПодключение к приложению
Когда сервисы запущены, вы можете открыть веб-приложение.
- Откройте веб-браузер.
- Перейдите по адресу
http://localhost:5000.
Вы должны увидеть сообщение от нашего приложения Flask, подтверждающее его подключение к базе данных PostgreSQL!
Масштабирование сервисов
Одна из мощных возможностей Docker Compose — масштабирование сервисов. Если вашему веб-приложению нужно обрабатывать больше запросов, вы можете легко увеличить число экземпляров веб-сервиса.
Используйте флаг --scale вместе с командой docker compose up.
# Scale the 'web' service to 3 instances
docker compose up --scale web=3 -dОстановка и удаление сервисов
Когда приложение больше не нужно, вы можете остановить и удалить все сервисы и их сети, определённые в файле docker-compose.yml.
Команда docker compose down выполнит эту очистку за вас.
# Stop and remove all services
docker compose downБыстрая проверка
Рассмотрим использованный нами файл docker-compose.yml. Вы только что запустили приложение с помощью команды docker compose up -d.
Какую основную команду следует использовать, чтобы остановить и удалить все работающие сервисы и связанные с ними ресурсы?
Повторение и следующие шаги
Отличная работа! Вы научились развёртывать приложение с несколькими сервисами и управлять им с помощью Docker Compose.
- Мы определили сервисы в файле
docker-compose.yml. - Мы использовали
docker compose up -dдля запуска сервисов. - Мы проверили состояние с помощью
docker compose ps. - Мы масштабировали сервисы и использовали
docker compose downдля очистки.
Это важный навык для локальной разработки и тестирования сложных приложений!
Часто задаваемые вопросы
Урок «Развёртывание приложений из нескольких сервисов» бесплатный?
Да — полный текст урока «Развёртывание приложений из нескольких сервисов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.
Чему я научусь в уроке «Развёртывание приложений из нескольких сервисов»?
Разверните полнофункциональное приложение с базой данных и серверной частью с помощью Docker Compose. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать DevOps Bootcamp?
Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Развёртывание приложений из нескольких сервисов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке DevOps Bootcamp?
Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Что такое Docker Compose?
- Написание файла Compose
- Развёртывание приложений из нескольких сервисов
- Переменные окружения и файлы .env