Если ты работаешь с Docker, то наверняка сталкивался с ситуацией, когда нужно запустить несколько связанных контейнеров. Вручную прописывать все команды — неэффективно. Именно здесь на помощь приходит Docker Compose. В этой статье я, как опытный DevOps-инженер, покажу тебе все способы установки Docker Compose на различных дистрибутивах Linux.
Что такое Docker Compose и зачем он нужен?
Docker Compose — это инструмент для определения и запуска многоконтейнерных приложений Docker. С помощью простого YAML-файла ты можешь описать все сервисы, сети, тома и зависимости между контейнерами. Представь, что тебе нужно развернуть веб-приложение с базой данных, кэшем и балансировщиком нагрузки. Вместо 10 отдельных команд docker run — один файл docker-compose.yml и команда docker compose up.
docker-compose, а плагин к Docker CLI — docker compose. Но старый способ установки тоже работает.
Предварительные требования: установка Docker
Перед установкой Docker Compose убедись, что у тебя установлен сам Docker. Если нет — вот краткая инструкция для Ubuntu/Debian:
# Обновляем пакеты
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
# Для Ubuntu/Debian и производных
sudo apt update
sudo apt install -y docker-compose-plugin
# Проверяем установку
docker compose version
# Должно вывести что-то вроде: Docker Compose version v2.24.0
Ручная установка бинарного файла
Если пакет недоступен в репозиториях (например, на Alt Linux или старых версиях), используй этот метод:
# Определяем архитектуру системы
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:
# Устанавливаем 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
Сравнение методов установки Docker Compose
| Метод | Преимущества | Недостатки | Рекомендуется для |
|---|---|---|---|
| Плагин Docker | Официальный, автоматические обновления, интеграция с Docker CLI | Требует Docker 20.10+ | Всех новых систем |
| Бинарный файл | Работает на любом Linux, контроль версий | Ручное обновление | Старых систем, Alt Linux, Astra Linux |
| pip установка | Простота, если уже есть Python | Возможны конфликты зависимостей | Быстрое тестирование |
Практический пример: установка Nginx через Docker Compose
Давай проверим работу Docker Compose на реальном примере. Создадим простой веб-сервер Nginx:
# Создаем директорию для проекта
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 для его запуска:
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
Для видеоконференций с интеграцией корпоративной аутентификации:
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:
Проверка и устранение неполадок
# Проверяем версию 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!