Docker Compose на Ubuntu 24.04: управление многоконтейнерными приложениями

Docker Compose на Ubuntu 24.04: управление многоконтейнерными приложениями

Docker Compose позволяет запускать многоконтейнерные проекты на VPS всего одной командой. Это удобный способ связать веб-сервер, базу данных и кеш в единую систему без ручной настройки каждого контейнера.

Введение

Если Docker позволяет запускать и управлять отдельными контейнерами, то Docker Compose нужен для многоконтейнерных приложений, где несколько сервисов (например, веб-сервер, база данных и кеш) работают вместе. Compose использует YAML-файл конфигурации (docker-compose.yml), в котором описываются контейнеры, их зависимости, тома, сети и переменные окружения. Это упрощает деплой сложных приложений на VPS с Ubuntu 24.04.

Аренда VPS/VDS — от ₽219/месяц

Почему выбирают VPS от AdminVPS:

✓ Дешевле физического сервера

✓ Более гибкий и мощный, чем обычный хостинг

✓ Бесплатная защита от DDoS и техподдержка 24/7

✓ Масштабируется под любые задачи

Виртуальный сервер VPS/VDS — ваш личный сервер для сайтов, магазинов, ботов и других проектов.

popup12

Установка Docker Compose

На Ubuntu 24.04 достаточно установить плагин для Docker CLI.

Установка:

sudo apt update
sudo apt install docker-compose-plugin -y

Проверка версии:

docker compose version

Обратите внимание

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

Первый пример: Nginx + PostgreSQL

Рассмотрим минимальный проект: веб-сервер и база данных в единой сети.

version: "3.9"
services:
** web:**
** image: nginx:alpine**
** ports:**
** - "8080:80"**
** volumes:**
** - ./nginx.conf:/etc/nginx/nginx.conf:ro**
** networks:**
** - app_net**
** depends_on:**
** - db**

** db:**
** image: postgres:15**
** environment:**
** POSTGRES_USER: user**
** POSTGRES_PASSWORD: password**
** POSTGRES_DB: app_db**
** volumes:**
** - db_data:/var/lib/postgresql/data**
** networks:**
** - app_net**

volumes:
** db_data:**

networks:
** app_net:**
** driver: bridge**

Запуск:

docker compose up -d

Остановка:

docker compose down

Теперь у вас есть два сервиса — web и db, изолированные в пользовательской сети app_net.

Ключевые элементы Compose:

  • services — контейнеры, которые будут запущены,
  • volumes — именованные тома для хранения данных,
  • networks — пользовательские сети для изоляции и удобного DNS-резолвинга,
  • depends_on — порядок запуска (web ждёт старта базы),
  • environment — переменные окружения для настройки сервисов.

Работа с Compose

Перезапуск сервисов:

docker compose restart web

Просмотр логов:

docker compose logs -f db

Список контейнеров:

docker compose ps

Масштабирование:

docker compose up -d --scale web=3

Теперь Nginx будет запущен в трёх экземплярах.

Продвинутые приёмы

  1. Переменные окружения в .env

Чтобы не хранить пароли в docker-compose.yml, вынесите их в .env:

POSTGRES_USER=user
POSTGRES_PASSWORD=secret
POSTGRES_DB=app_db

А в docker-compose.yml используйте:

environment:
** POSTGRES_USER: ${POSTGRES_USER}**
** POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}**
** POSTGRES_DB: ${POSTGRES_DB}**
  1. Ограничение ресурсов
deploy:
** resources:**
** limits:**
** cpus: "1.0"**
** memory: 1G**
  1. Автоматический рестарт
restart: unless-stopped

Практический кейс: веб-приложение с кешем Redis

version: "3.9"
services:
** app:**
** build: ./app**
** ports:**
** - "5000:5000"**
** depends_on:**
** - redis**
** networks:**
** - app_net**

** redis:**
** image: redis:alpine**
** networks:**
** - app_net**

networks:
** app_net:**
** driver: bridge**

Здесь app — это кастомный сервис (например, Flask-приложение), который при старте сразу подключается к контейнеру redis.

Заключение

Docker Compose упрощает управление многоконтейнерными приложениями на Ubuntu 24.04. Вместо десятков отдельных команд достаточно одного файла docker-compose.yml, в котором описаны все сервисы, их связи, тома и сети. Compose особенно полезен на VPS при работе с проектами, где важно быстро развернуть веб-сервис с базой данных и кешем, а также поддерживать инфраструктуру в воспроизводимом виде.

Читайте в блоге:

Loading spinner
0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Нужен VPS сервер?

Арендуйте мощный VPS сервер для ваших проектов! Быстрая настройка, высокая производительность и надежная поддержка 24/7. Начните прямо сейчас!

Что будем искать? Например,VPS-сервер

Мы в социальных сетях