Введение / Зачем это нужно
Docker Compose — это инструмент для определения и запуска многоконтейнерных Docker-приложений. С его помощью вы описываете все сервисы (база данных, веб-сервер, бэкенд) в одном YAML-файле (docker-compose.yml) и управляете ими одной командой. Этот гайд поможет вам установить Docker Compose на сервер или рабочую станцию под Linux, что является первым шагом к локальной разработке, тестированию или развёртыванию комплексных приложений.
Требования / Подготовка
Перед началом убедитесь, что у вас:
- Установлен Docker Engine. Docker Compose работает поверх Docker. Проверьте наличие Docker командой:
Если Docker не установлен, сначала следуйте нашему руководству по установке Docker на Linux.docker --version - Права администратора (sudo). Установка пакетов требует прав суперпользователя.
- Подключение к интернету для загрузки пакетов и репозиториев.
Пошаговая инструкция
Шаг 1: Обновите индекс пакетов и установите зависимости
Откройте терминал и выполните команды для обновления списка доступных пакетов и установки утилит, которые понадобятся для работы с репозиториями.
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
Для систем на базе RPM (CentOS, Fedora) используйте sudo yum update и sudo yum install -y ca-certificates curl gnupg.
Шаг 2: Добавьте официальный репозиторий Docker
Создайте директорию для ключей GPG и импортируйте официальный ключ Docker. Затем добавьте стабильный репозиторий в sources.list.
# Создание директории для ключей (если её нет)
sudo install -m 0755 -d /etc/apt/keyrings
# Импорт GPG-ключа Docker
curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Добавление репозитория
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(. /etc/os-release; echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Для RPM-систем команды добавления репозитория отличаются. Например, для CentOS:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
Шаг 3: Установите Docker Compose
Теперь установите сам плагин Docker Compose из только что добавленного репозитория.
sudo apt-get update
sudo apt-get install -y docker-compose-plugin
После установки команда для работы с Compose v2 будет docker compose (с пробелом). Старая версия v1 (docker-compose) больше не поддерживается.
Шаг 4: Проверьте установку
Убедитесь, что Docker Compose установлен корректно и доступен из командной строки.
docker compose version
Вы должны увидеть вывод, похожий на:
Docker Compose version v2.24.5
Шаг 5: Запустите тестовый контейнер для проверки
Создайте в домашней директории простой файл docker-compose.yml:
mkdir ~/test-compose && cd ~/test-compose
cat > docker-compose.yml <<EOF
version: '3.8'
services:
hello-world:
image: hello-world
EOF
Запустите сервис:
docker compose up
Если вы видите вывод от контейнера hello-world и сообщение о завершении работы — установка прошла успешно.
Проверка результата
Главный indicator успеха — это возможность выполнить команду docker compose version без ошибок и успешно запустить тестовый сервис из шага 5. Также убедитесь, что ваш пользователь добавлен в группу docker (если вы хотите использовать Docker без sudo):
sudo usermod -aG docker $USER
Изменения вступят в силу после выхода и повторного входа в систему.
Возможные проблемы
Ошибка: docker: command not found или docker compose: command not found
- Причина: Docker не установлен или не добавлен в PATH.
- Решение: Установите Docker Engine, как описано в требованиях. Перезапустите терминал или выполните
newgrp dockerпосле добавления пользователя в группу.
Ошибка: permission denied while trying to connect to the Docker daemon socket
- Причина: Текущий пользователь не имеет прав на управление Docker.
- Решение: Добавьте пользователя в группу
docker(см. выше) и перелогиньтесь. Либо используйтеsudoперед командами.
Ошибка при добавлении репозитория (GPG key)
- Причина: Проблемы с сетью или устаревшие пакеты
gnupg. - Решение: Убедитесь, что установлены
ca-certificatesиgnupg. Повторите шаг 2. Для старых систем может потребоваться использовать утилитуapt-key(устарела, но иногда работает).