Перейти к основному контенту

Работа с Docker на Debian. Часть 2

intro-and-Configuring-Compose-Docker-Debian-Part2-planetahost.png

Подробности урока

Уровень сложности Лёгкий
Права root Требуются
Требования Терминал Linux
Категория Установка ПО
Совместимость с ОС Debian, Ubuntu
Примерное время чтения 1 час

Введение

После установки Docker следующим шагом обычно является использование Docker Compose.

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

  • веб-сервер
  • база данных
  • кэш
  • backend-приложение

Все сервисы описываются в одном файле docker-compose.yml, после чего их можно запустить одной командой.

В этой инструкции рассмотрим:

  1. проверку установленного Docker Compose
  2. структуру файла docker-compose.yml
  3. запуск нескольких контейнеров
  4. основные команды управления сервисами

Инструкция

1. Проверка Docker Compose

В современных версиях Docker Compose устанавливается вместе с Docker как плагин.

Проверить его наличие можно командой:

docker compose version

Пример вывода:

Docker Compose version v5.x.x

изображение.png

Если команда выполняется успешно, то Docker Compose готов к работе.

2. Создание проекта

Создадим каталог для проекта:

mkdir -p docker-project && cd docker-project

Создадим файл конфигурации:

nano docker-compose.yml
3. Структура docker-compose.yml

Пример конфигурации для запуска веб-сервера NGINX:

services:
  web:
    image: nginx:latest
    container_name: nginx_server
    ports:
      - "8080:80"
    restart: unless-stopped

изображение.png

Разбор параметров:

  • services - раздел, в котором описываются контейнеры.
  • image - образ, который будет использоваться.
  • container_name - имя контейнера.
  • ports - проброс портов.
    8080:80 означает: порт сервера → порт контейнера
  • restart unless-stopped - контейнер автоматически перезапустится после перезагрузки сервера.
4. Запуск контейнеров

Запустить сервисы можно командой:

docker compose up -d

Параметры:

  • up - запуск сервисов
  • -d - запуск в фоновом режиме


Docker автоматически:

  1. скачает образ
  2. создаст контейнер
  3. запустит сервис

изображение.png

5. Проверка контейнеров

Посмотреть запущенные контейнеры:

docker ps

Вы увидите примерно следующее:

изображение.png

Теперь веб-сервер доступен по адресу:

http://SERVER_IP:8080

изображение.png

6. Остановка контейнеров

Чтобы остановить сервисы:

docker compose down

Эта команда:

  1. остановит контейнеры
  2. удалит созданную сеть

изображение.png

7. Просмотр логов

Логи контейнеров можно посмотреть так:

docker compose logs

изображение.png

Следить за логами в реальном времени:

docker compose logs -f
8. Перезапуск сервисов

Перезапустить контейнеры:

docker compose restart

изображение.png

9. Обновление контейнеров

Если вышла новая версия образа, можно обновить контейнер.

Сначала скачиваем обновление:

docker compose pull

изображение.png

После этого перезапускаем сервисы:

docker compose up -d
10. Пример многосервисного проекта

Docker Compose особенно удобен для приложений, использующих базу данных.

Пример запуска PostgreSQL вместе с веб-сервисом:

services:
  database:
    image: postgres:16
    container_name: postgres_db
    restart: always
    environment:
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: strongpassword
      POSTGRES_DB: appdb
    volumes:
      - postgres_data:/var/lib/postgresql/data

  web:
    image: nginx:latest
    ports:
      - "8080:80"
    restart: always

volumes:
  postgres_data:

В этой конфигурации запускаются два контейнера:

  1. база данных PostgreSQL
  2. веб-сервер

изображение.png

изображение.png

11. Автоматический запуск контейнеров

Если в конфигурации указан параметр:

restart: always

или

restart: unless-stopped

Контейнеры будут автоматически запускаться после перезагрузки сервера.

12. Полезные команды Docker Compose

Просмотр контейнеров проекта:

docker compose ps

Остановка сервисов:

docker compose stop

Удаление контейнеров:

docker compose down

Пересборка контейнеров:

docker compose up -d --build

Заключение

В данной инструкции была рассмотрена работа с Docker Compose, который позволяет управлять несколькими контейнерами Docker с помощью единого конфигурационного файла.

Использование Docker Compose значительно упрощает развёртывание и управление многосервисными приложениями. Благодаря описанию инфраструктуры в файле docker-compose.yml можно быстро запускать, обновлять и переносить сервисы между различными серверами.