Установка и настройка Docker на Debian. Часть 2
Введение
После установки Docker следующим шагом обычно является использование Docker Compose.
Docker Compose позволяет запускать сразу несколько контейнеров и управлять ими через один конфигурационный файл. Это особенно удобно для приложений, состоящих из нескольких сервисов, например:
- веб-сервер
- база данных
- кэш
- backend-приложение
Все сервисы описываются в одном файле docker-compose.yml, после чего их можно запустить одной командой.
В этой инструкции рассмотрим:
- проверку установленного Docker Compose
- структуру файла docker-compose.yml
- запуск нескольких контейнеров
- основные команды управления сервисами
Инструкция
1. Проверка Docker Compose
В современных версиях Docker Compose устанавливается вместе с Docker как плагин.
Проверить его наличие можно командой:
docker compose version
Пример вывода:
Docker Compose version v5.x.x
Если команда выполняется успешно, то 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
Разбор параметров:
- services - раздел, в котором описываются контейнеры.
- image - образ, который будет использоваться.
- container_name - имя контейнера.
- ports - проброс портов.
8080:80 означает: порт сервера → порт контейнера - restart unless-stopped - контейнер автоматически перезапустится после перезагрузки сервера.
4. Запуск контейнеров
Запустить сервисы можно командой:
docker compose up -d
Параметры:
- up - запуск сервисов
- -d - запуск в фоновом режиме
Docker автоматически:
- скачает образ
- создаст контейнер
- запустит сервис
5. Проверка контейнеров
Посмотреть запущенные контейнеры:
docker ps
Вы увидите примерно следующее:
Теперь веб-сервер доступен по адресу:
http://SERVER_IP:8080
6. Остановка контейнеров
Чтобы остановить сервисы:
docker compose down
Эта команда:
- остановит контейнеры
- удалит созданную сеть
7. Просмотр логов
Логи контейнеров можно посмотреть так:
docker compose logs
Следить за логами в реальном времени:
docker compose logs -f
8. Перезапуск сервисов
Перезапустить контейнеры:
docker compose restart
9. Обновление контейнеров
Если вышла новая версия образа, можно обновить контейнер.
Сначала скачиваем обновление:
docker compose pull
После этого перезапускаем сервисы:
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:
В этой конфигурации запускаются два контейнера:
- база данных PostgreSQL
- веб-сервер
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 можно быстро запускать, обновлять и переносить сервисы между различными серверами.










