Docker Compose для многосервисных приложений
Настоящее приложение почти никогда не состоит из одного контейнера — есть сервис API, база данных, а иногда и cache. Вместо того чтобы запускать каждый отдельной командой docker run и связывать их вручную, файл compose.yaml описывает все сервисы вместе, а docker compose up поднимает их все сразу. В
Docker Compose — это как один режиссёр-постановщик, который запускает весь спектакль вместе: все актёры выходят на сцену одновременно и узнают друг друга по названию роли, а не по номеру кресла.
- service
- Описание одного контейнера внутри compose — какой image или build использовать, какие переменные окружения, порты и volumes. Каждый service поднимается как самостоятельная единица, но связанная с остальными.
- compose-файл
- Файл YAML, описывающий все сервисы, сети и volumes приложения в одном месте, так что docker compose up может поднять всё вместе воспроизводимым образом.
- depends_on
- Настройка, которая управляет только порядком запуска: Compose сначала запускает сервис, от которого есть зависимость. Она не ждёт, пока этот сервис будет готов принимать запросы — для этого нужен healthcheck с condition: service_healthy.