Введение / Зачем это нужно
Docker Compose — это инструмент для определения и запуска многоконтейнерных Docker-приложений. С помощью простого YAML-файла (docker-compose.yml) вы можете настроить сервисы, сети и тома, а затем поднять всю инфраструктуру одной командой docker compose up. Этот гайд поможет вам установить Docker Compose на свою операционную систему и подготовить среду для работы с контейнеризированными приложениями.
Требования / Подготовка
Перед установкой Docker Compose убедитесь, что выполнены следующие условия:
- Установленный Docker Engine. Docker Compose работает поверх Docker, поэтому Docker Daemon должен быть установлен и запущен.
- Права администратора/суперпользователя. Для установки ПО на системном уровне потребуются права
sudo(Linux/macOS) или запуск от администратора (Windows). - Подключение к интернету. Для загрузки бинарных файлов или пакетов.
- Минимальные требования к системе. Для Docker Desktop (Windows/macOS) требуется современный процессор с поддержкой виртуализации и как минимум 4 ГБ ОЗУ.
Проверка установленного Docker
Откройте терминал (Linux/macOS) или PowerShell (Windows) и выполните команду:
docker --version
Если вы видите версию (например, Docker version 24.0.5, build abc123), Docker установлен. Если команда не найдена, сначала установите Docker Engine.
Установка на Linux (Debian/Ubuntu и производные)
С 2023 года рекомендуется устанавливать Docker Compose как плагин к Docker CLI (версия V2). Этот способ интегрирован в экосистему Docker и обновляется вместе с пакетом docker-ce.
- Обновите индекс пакетов и установите зависимости:
sudo apt-get update sudo apt-get install -y docker-compose-plugin
Этот пакет добавит командуdocker compose(с пробелом) в вашу систему. - Альтернативный способ: загрузка бинарного файла (если нет репозитория):
# Определите архитектуру и версию (пример для amd64, v2.24.5) DOCKER_COMPOSE_VERSION="v2.24.5" sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose
Этот метод установит старую версию V1 (с дефисом в команде). Предпочтительнее использовать плагин.
Установка на macOS
На macOS Docker Compose поставляется в составе Docker Desktop.
- Скачайте установщик Docker Desktop для Mac с официального сайта.
- Запустите скачанный
.dmg-файл и перетащите иконку Docker в папкуApplications. - Запустите Docker Desktop из
LaunchpadилиApplications. - После завершения инициализации (иконка в строке меню перестанет анимироваться) Docker Compose будет готов к использованию в любом терминале.
💡 Совет: Для лучшей интеграции с системой установите также
dockerCLI через Homebrew:brew install docker. Это даст вам командуdockerв терминале, но сам Daemon управляется через Desktop.
Установка на Windows
На Windows Docker Compose также входит в Docker Desktop for Windows.
- Скачайте установщик Docker Desktop для Windows с официального сайта.
- Запустите установщик. В процессе установки включите опцию "Use WSL 2 instead of Hyper-V" (рекомендуется) для лучшей производительности и совместимости.
- После установки Docker Desktop запустится автоматически. Дождитесь, когда иконка в системном трее станет белой и перестанет мигать.
- Откройте PowerShell или Командную строку и проверьте установку.
⚠️ Важно: Для работы Docker Desktop на Windows требуется включенная виртуализация в BIOS/UEFI и функция WSL 2 (Windows Subsystem for Linux 2). Если WSL 2 не установлен, Docker Desktop предложит установить его автоматически.
Установка через Python pip (альтернативный/универсальный способ)
Этот способ работает практически на любой системе, где есть Python и pip, но он менее предпочтителен для produção-сред, так как обновления требуют ручного вмешательства.
- Убедитесь, что Python 3 и pip установлены:
python3 --version pip3 --version - Установите Docker Compose через pip:
Эта команда установит последнюю версию V1 (командаpip3 install docker-composedocker-composeс дефисом). - Примечание: Установка через pip может конфликтовать с пакетным менеджером системы. Используйте этот метод только в виртуальных окружениях (
venv) или если другие способы недоступны.
Проверка результата
После установки проверьте, что команда работает и видит Docker Daemon:
# Для версии V2 (плагин)
docker compose version
# Для версии V1 (бинарник или pip)
docker-compose --version
Ожидаемый вывод (пример):
Docker Compose version v2.24.5
или
docker-compose version 1.29.2, build 5becea4c
Также выполните тестовую команду, которая запросит информацию о Docker:
docker compose version
Если вы видите информацию о версии Docker и compose, а не ошибку Cannot connect to the Docker daemon, значит, установка прошла успешно.
Возможные проблемы
Ошибка "permission denied" при выполнении команды (Linux)
Симптом: docker: permission denied while trying to connect to the Docker daemon socket.
Причина: Текущий пользователь не состоит в группе docker.
Решение: Добавьте пользователя в группу docker и перезагрузитесь или выполните newgrp docker:
sudo usermod -aG docker $USER
Команда docker compose не найдена, но Docker Desktop запущен (Windows/macOS)
Симптом: PowerShell сообщает, что docker или docker compose не является внутренней или внешней командой.
Причина: Путь к Docker CLI не добавлен в переменную окружения PATH.
Решение: Перезапустите терминал/компьютер после установки Docker Desktop. Если не поможет, переустановите Docker Desktop, убедившись, что опция "Add to PATH" включена.
Конфликт версий: есть и docker-compose, и docker compose
Симптом: Обе команды работают, но могут вести себя по-разному.
Причина: Установлены обе версии (V1 как бинарник и V2 как плагин).
Решение: Рекомендуется использовать только V2 (docker compose). При необходимости удалите бинарник V1 (например, sudo rm /usr/local/bin/docker-compose на Linux или удалите через pip uninstall docker-compose).
Docker Compose не может подключиться к Docker Daemon
Симптом: Error response from daemon: dial unix /var/run/docker.sock: connect: permission denied или Is the docker daemon running?.
Причина: Docker Engine не запущен или сокет недоступен.
Решение: Запустите Docker Desktop (Windows/macOS) или сервис Docker (Linux: sudo systemctl start docker). Убедитесь, что ваш пользователь имеет права на доступ к сокету (см. пункт выше).