Частое заблуждение:
Docker запускает один контейнер, а Docker Compose - несколько.
Спешу огорчить: это вообще не так
Обычный Docker тоже может запускать сколько угодно контейнеров:
Проблема начинается тогда, когда проект состоит из нескольких сервисов.
docker run postgres
docker run redis
docker run nginx
docker run myapp
Проблема начинается тогда, когда проект состоит из нескольких сервисов.
Вам нужно помнить десятки параметров:
⭐️порты;
⭐️переменные окружения;
⭐️тома;
⭐️сети;
⭐️порядок запуска контейнеров.
⭐️порты;
⭐️переменные окружения;
⭐️тома;
⭐️сети;
⭐️порядок запуска контейнеров.
И каждый раз запускать всё вручную👀
А вот Docker Compose уже решает эту проблему.
Вместо набора команд вы описываете инфру проекта в одном файле:
После чего запускаете всё одной командой:
services:
postgres:
redis:
backend:
frontend:
После чего запускаете всё одной командой:
docker compose up -d
Compose сам:
⭐️создаст сеть между контейнерами;
⭐️поднимет нужные сервисы;
⭐️подключит тома;
⭐️пробросит порты;
⭐️сохранит конфигурацию проекта.
⭐️создаст сеть между контейнерами;
⭐️поднимет нужные сервисы;
⭐️подключит тома;
⭐️пробросит порты;
⭐️сохранит конфигурацию проекта.
Подытожим:
📌Docker — инструмент для работы с отдельными контейнерами.
📌Docker Compose — инструмент для управления группой контейнеров как единым приложением.
📌Docker — инструмент для работы с отдельными контейнерами.
📌Docker Compose — инструмент для управления группой контейнеров как единым приложением.
Поэтому для обучения достаточно Docker, а для большинства реальных проектов почти всегда используется Docker Compose🤝😉