Установка Docker Compose на Ubuntu, Debian, Linux: пошаговая инструкция 2024 | AdminWiki

Docker Compose установка: Полное руководство для Ubuntu, Debian и других Linux дистрибутивов

17 декабря 2025 7 мин. чтения #debian #devops #docker #docker compose #docker-compose установка #linux #ubuntu #контейнеризация

Если ты работаешь с Docker, то наверняка сталкивался с ситуацией, когда нужно запустить несколько связанных контейнеров. Вручную прописывать все команды — неэффективно. Именно здесь на помощь приходит Docker Compose. В этой статье я, как опытный DevOps-инженер, покажу тебе все способы установки Docker Compose на различных дистрибутивах Linux.

Что такое Docker Compose и зачем он нужен?

Docker Compose — это инструмент для определения и запуска многоконтейнерных приложений Docker. С помощью простого YAML-файла ты можешь описать все сервисы, сети, тома и зависимости между контейнерами. Представь, что тебе нужно развернуть веб-приложение с базой данных, кэшем и балансировщиком нагрузки. Вместо 10 отдельных команд docker run — один файл docker-compose.yml и команда docker compose up.

Важно: С 2020 года Docker Compose перешел на плагинную архитектуру. Теперь это не отдельная утилита docker-compose, а плагин к Docker CLI — docker compose. Но старый способ установки тоже работает.

Предварительные требования: установка Docker

Перед установкой Docker Compose убедись, что у тебя установлен сам Docker. Если нет — вот краткая инструкция для Ubuntu/Debian:

bash
# Обновляем пакеты
sudo apt update
sudo apt upgrade -y

# Устанавливаем необходимые зависимости
sudo apt install -y ca-certificates curl gnupg

# Добавляем официальный GPG ключ Docker
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Добавляем репозиторий Docker
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Устанавливаем Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin

# Добавляем текущего пользователя в группу docker (чтобы не использовать sudo)
sudo usermod -aG docker $USER
newgrp docker

Способ 1: Установка Docker Compose как плагина Docker (рекомендуемый)

Это современный способ, который работает на всех дистрибутивах Linux, включая Ubuntu 24.04, Debian 12/13, и даже на таких специализированных системах, как Astra Linux или RedOS.

Установка через официальный репозиторий Docker

bash
# Для Ubuntu/Debian и производных
sudo apt update
sudo apt install -y docker-compose-plugin

# Проверяем установку
docker compose version
# Должно вывести что-то вроде: Docker Compose version v2.24.0

Ручная установка бинарного файла

Если пакет недоступен в репозиториях (например, на Alt Linux или старых версиях), используй этот метод:

bash
# Определяем архитектуру системы
ARCH=$(uname -m)
if [ "$ARCH" = "x86_64" ]; then
    ARCH="x86_64"
elif [ "$ARCH" = "aarch64" ]; then
    ARCH="aarch64"
else
    echo "Неподдерживаемая архитектура: $ARCH"
    exit 1
fi

# Скачиваем последнюю версию Docker Compose
DOCKER_COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d'"' -f4)
sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-$ARCH" -o /usr/local/bin/docker-compose

# Даем права на выполнение
sudo chmod +x /usr/local/bin/docker-compose

# Проверяем установку
docker-compose --version

Способ 2: Установка через pip (Python package manager)

Этот метод подходит, если у тебя уже установлен Python и pip:

bash
# Устанавливаем pip, если нет
sudo apt install -y python3-pip

# Устанавливаем Docker Compose
pip3 install docker-compose

# Добавляем в PATH, если необходимо
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# Проверяем
docker-compose --version
Внимание: Установка через pip может привести к конфликтам версий. Рекомендую использовать официальные пакеты или бинарные файлы.

Сравнение методов установки Docker Compose

Метод Преимущества Недостатки Рекомендуется для
Плагин Docker Официальный, автоматические обновления, интеграция с Docker CLI Требует Docker 20.10+ Всех новых систем
Бинарный файл Работает на любом Linux, контроль версий Ручное обновление Старых систем, Alt Linux, Astra Linux
pip установка Простота, если уже есть Python Возможны конфликты зависимостей Быстрое тестирование

Практический пример: установка Nginx через Docker Compose

Давай проверим работу Docker Compose на реальном примере. Создадим простой веб-сервер Nginx:

bash
# Создаем директорию для проекта
mkdir ~/nginx-demo && cd ~/nginx-demo

# Создаем docker-compose.yml
cat > docker-compose.yml << 'EOF'
version: '3.8'

services:
  web:
    image: nginx:alpine
    container_name: nginx-web
    ports:
      - "8080:80"
    volumes:
      - ./html:/usr/share/nginx/html
    restart: unless-stopped

EOF

# Создаем тестовую HTML страницу
mkdir html
echo '

Docker Compose работает!

' > html/index.html # Запускаем контейнер docker compose up -d # Проверяем curl http://localhost:8080

Установка сложных систем через Docker Compose

Zabbix Docker Compose установка

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

yaml
version: '3.5'
services:
  zabbix-server:
    image: zabbix/zabbix-server-mysql:latest
    container_name: zabbix-server
    restart: always
    ports:
      - "10051:10051"
    environment:
      DB_SERVER_HOST: zabbix-mysql
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix-password
    depends_on:
      - zabbix-mysql

  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:latest
    container_name: zabbix-web
    restart: always
    ports:
      - "8080:8080"
    environment:
      DB_SERVER_HOST: zabbix-mysql
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix-password
      ZBX_SERVER_HOST: zabbix-server
    depends_on:
      - zabbix-server
      - zabbix-mysql

  zabbix-mysql:
    image: mysql:8.0
    container_name: zabbix-mysql
    restart: always
    environment:
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix-password
      MYSQL_ROOT_PASSWORD: root-password
    volumes:
      - zabbix-mysql-data:/var/lib/mysql

volumes:
  zabbix-mysql-data:

Jitsi Docker Compose установка с LDAP

Для видеоконференций с интеграцией корпоративной аутентификации:

yaml
version: '3'
services:
  # Базовые сервисы Jitsi
  web:
    image: jitsi/web:latest
    # ... конфигурация Jitsi
    environment:
      - ENABLE_AUTH=1
      - AUTH_TYPE=ldap
      - LDAP_URL=ldap://your-ldap-server
      - LDAP_BASE=dc=example,dc=com
    # ... остальные настройки

  # LDAP сервер для тестирования (опционально)
  openldap:
    image: osixia/openldap:latest
    container_name: openldap
    environment:
      LDAP_ORGANISATION: "Example Inc."
      LDAP_DOMAIN: "example.com"
      LDAP_ADMIN_PASSWORD: "admin"
    ports:
      - "389:389"
      - "636:636"
    volumes:
      - ldap-data:/var/lib/ldap
      - ldap-config:/etc/ldap/slapd.d

volumes:
  ldap-data:
  ldap-config:

Проверка и устранение неполадок

bash
# Проверяем версию Docker Compose
docker compose version
# Или для старой версии
docker-compose --version

# Если команда не найдена, проверяем PATH
echo $PATH
which docker-compose

# Проверяем синтаксис docker-compose.yml
docker compose config

# Просмотр логов запущенных сервисов
docker compose logs

# Остановка всех сервисов
docker compose down

# Пересборка и перезапуск
docker compose up -d --build

Часто задаваемые вопросы (FAQ)

В чем разница между docker-compose и docker compose?

docker-compose — это отдельная утилита (Python скрипт), которая устанавливается отдельно от Docker. docker compose — это плагин Docker CLI, который идет вместе с Docker Desktop или устанавливается как отдельный плагин. Рекомендую использовать второе, так как это современный подход.

Как обновить Docker Compose до последней версии?

Для плагина Docker: sudo apt update && sudo apt upgrade docker-compose-plugin
Для бинарного файла: скачай новую версию по инструкции выше и замени старый файл.

Docker Compose не видит мой docker-compose.yml файл

Убедись, что файл называется именно docker-compose.yml или docker-compose.yaml и находится в текущей директории. Или укажи путь явно: docker compose -f /путь/к/файлу.yml up

Как установить Docker Compose на Ubuntu Server без графического интерфейса?

Все методы, описанные выше, работают и на Ubuntu Server. Самый простой способ: sudo apt install docker-compose-plugin

Поддерживается ли Docker Compose на Astra Linux и RedOS?

Да, но из-за особенностей этих дистрибутивов рекомендую использовать метод с бинарным файлом. Убедись, что установлен Docker, затем скачай бинарник docker-compose и помести его в /usr/local/bin.

Заключение

Установка Docker Compose — это простой процесс, который открывает перед тобой мощные возможности по управлению многоконтейнерными приложениями. Независимо от того, используешь ли ты Ubuntu 24.04, Debian 12, или более специализированные дистрибутивы вроде Astra Linux — теперь у тебя есть полное руководство по установке.

Запомни главное:

  • Для новых систем используй плагин Docker Compose (docker compose)
  • Для старых или специализированных систем — бинарный файл
  • Всегда проверяй версию после установки
  • Начинай с простых docker-compose.yml файлов, постепенно усложняя

Теперь ты готов развертывать сложные приложения вроде Zabbix, Jitsi с LDAP или собственные микросервисные архитектуры. Удачи в освоении Docker Compose!

Поделиться:
Сохранить гайд? В закладки браузера