Введение в Compose в Docker
Несколько контейнеров неудобно каждый раз собирать длинной командой в терминале. Compose держит их описание в одном файле и поднимает вместе. Сервис - это описанный там контейнер: имя, образ и другие параметры в одном месте.
Файл читают из папки проекта. Там перечислены все сервисы, которые должны работать вместе. Один запуск поднимает всю группу, а не каждый контейнер по отдельности. Так проще повторить тот же набор на другом компьютере.
Compose не заменяет образы и не собирает их сам по себе. В описании указывают готовый образ, из которого служба создаст контейнер. Каждый сервис получает своё имя внутри проекта. По этому имени к нему обращаются при управлении проектом.
Несколько проектов могут жить рядом на одной машине. У каждого свой набор контейнеров и своё имя проекта. Один и тот же файл в другой папке даёт другую группу на диске. Так не смешивают чужие сервисы в одном списке.
Пока программа в контейнере работает, сервис считается запущенным. Когда процесс остановлен, запись о контейнере может остаться, как в разделе про контейнеры. Compose управляет такими копиями как частью одного проекта.
Имеет смысл держать файл описания рядом с кодом проекта и запускать Compose из той же папки. Тогда имена сервисов и образов видны в одном месте, а повторить поднятие на другой машине проще, чем восстанавливать длинные команды из истории терминала.