Docker Compose — инструмент для запуска и управления несколькими Docker-контейнерами с помощью одного YAML-файла. Вместо запуска каждого контейнера отдельной командой можно описать приложение, его порты, сети, тома и переменные окружения в файле compose.yaml.
В этой инструкции рассмотрим установку Docker Compose на Ubuntu 24.04 LTS, проверим его работу и запустим первый проект.
Требования
Для работы потребуется:
-
сервер с Ubuntu 24.04 LTS;
-
установленный Docker Engine;
-
доступ к серверу по SSH;
-
пользователь с правами
sudoилиroot.
Если Docker еще не установлен, сначала воспользуйтесь инструкцией «Как установить Docker на Ubuntu 24.04».
Проверка Docker
Перед установкой Docker Compose убедитесь, что Docker работает:
docker --version
Проверить состояние службы можно командой:
sudo systemctl status docker
Если Docker запущен, вы увидите:
active (running)
Установка Docker Compose
В современных версиях Docker Compose распространяется в виде официального плагина Docker CLI.
Обновите список пакетов:
sudo apt update
Установите Docker Compose Plugin:
sudo apt install docker-compose-plugin -y
После завершения установки проверьте версию:
docker compose version
Команда должна вывести установленную версию Docker Compose.
docker compose и docker-compose — в чем разница
В старых инструкциях часто встречается команда:
docker-compose
Это отдельная предыдущая реализация Docker Compose.
Современный вариант запускается следующим образом:
docker compose
Поэтому для новых серверов и проектов рекомендуется использовать именно docker compose.
Создание первого проекта Docker Compose
Создадим каталог проекта:
mkdir ~/docker-test
cd ~/docker-test
Создайте файл:
nano compose.yaml
Добавьте следующую конфигурацию:
services:
nginx:
image: nginx:latest
container_name: nginx-test
restart: unless-stopped
ports:
- "80:80"
Сохраните файл.
В редакторе Nano для этого нажмите:
Ctrl + O
Enter
Ctrl + X
Запуск контейнера
Запустите проект:
docker compose up -d
Параметр -d означает запуск контейнеров в фоновом режиме.
Docker загрузит образ Nginx и создаст контейнер.
Проверьте состояние:
docker compose ps
Также можно использовать:
docker ps
После запуска откройте в браузере:
http://IP_АДРЕС_СЕРВЕРА
Если порт 80 доступен извне, появится стандартная страница Nginx.
Просмотр логов
Для просмотра логов проекта используйте:
docker compose logs
Для просмотра логов в реальном времени:
docker compose logs -f
Для выхода нажмите:
Ctrl + C
Это остановит просмотр логов, но не контейнер.
Перезапуск контейнеров
Перезапустить сервисы проекта можно командой:
docker compose restart
Остановить:
docker compose stop
Снова запустить:
docker compose start
Остановка и удаление проекта
Чтобы остановить контейнеры и удалить их:
docker compose down
Образы при этом обычно сохраняются.
Если необходимо также удалить связанные с проектом тома:
docker compose down -v
Используйте эту команду осторожно: Docker volumes могут содержать базы данных и другие важные данные.
Обновление контейнеров Docker Compose
Для загрузки новых версий образов:
docker compose pull
После этого пересоздайте контейнеры:
docker compose up -d
Старые контейнеры будут заменены новыми на основе загруженных образов.
Полезные команды Docker Compose
Запустить проект:
docker compose up -d
Посмотреть контейнеры:
docker compose ps
Посмотреть логи:
docker compose logs -f
Перезапустить:
docker compose restart
Остановить:
docker compose stop
Остановить и удалить контейнеры проекта:
docker compose down
Загрузить новые версии образов:
docker compose pull
Посмотреть конфигурацию:
docker compose config
Заключение
Docker Compose значительно упрощает управление приложениями, состоящими из одного или нескольких контейнеров. Конфигурация проекта хранится в compose.yaml, благодаря чему приложение можно легко перенести на другой VPS или выделенный сервер.
После установки Docker и Docker Compose можно запускать веб-серверы, базы данных, системы мониторинга, панели управления и другие приложения практически одной командой.
Для дальнейшей работы рекомендуем ознакомиться со статьей «Основные команды Docker: шпаргалка для начинающих».
EN
Основные команды Docker — шпаргалка с примерами | VIP.Hosting