Глиф Учебники

docker compose и docker-compose: в чём разница

Справочник · Docker · 2 минуты чтения

docker compose (через пробел) — современный Docker Compose. Он встроен в команду docker как дополнение (plugin) и развивается. docker-compose (через дефис) — старая отдельная программа Compose v1 на Python. С июля 2023 года она не получает обновлений.

Используйте docker compose. Файлы docker-compose.yml от старой версии в ней почти всегда работают без изменений.

Как поставить и проверить

На Ubuntu и Debian с официальным репозиторием Docker:

Bash
sudo apt install docker-compose-plugin
docker compose version

С пакетами из репозитория Ubuntu — пакет docker-compose-v2. В Docker Desktop Compose уже есть.

Проверить, какая программа стоит у вас под именем docker-compose:

Bash
docker-compose version

Если номер версии начинается с 1. — это старая программа. Удалить её на Ubuntu: sudo apt remove docker-compose.

Что меняется при переходе

Почему «command not found»

Если инструкция написана для docker-compose

Старые статьи и README часто используют docker-compose. Переводите команды один в один, заменяя дефис на пробел: docker-compose -f prod.yml up -d → docker compose -f prod.yml up -d. Если инструкция советует скачать docker-compose с GitHub и положить в /usr/local/bin, — это установка старой версии, её делать не нужно.

Номера версий самого Compose после v2 продолжились как v5 — это тот же современный Compose с командой docker compose. Номер выводит docker compose version.