0Pricing
DevOps Bootcamp · Урок

Развёртывание приложений из нескольких сервисов

Разверните полнофункциональное приложение с базой данных и серверной частью с помощью Docker Compose.

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

Развёртывание приложений с несколькими сервисами

Добро пожаловать! На этом уроке вы узнаете, как запустить полнофункциональное приложение с помощью Docker Compose.

Вы увидите, как определить несколько сервисов, например веб-приложение и базу данных, а затем развернуть их и управлять ими вместе.

Развёртывание приложений из нескольких сервисов — иллюстрация 1

Наш пример: веб-приложение и база данных

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

  • Веб-сервис: приложение на 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 — локальная установка не требуется.

Все уроки этого курса

  1. Что такое Docker Compose?
  2. Написание файла Compose
  3. Развёртывание приложений из нескольких сервисов
  4. Переменные окружения и файлы .env
← Назад к DevOps Bootcamp