Архитектура Docker, если убрать лишнее, выглядит очень просто:
Есть образ (image) - это слепок приложения с зависимостями.
Один раз собрал - запускаешь где угодно.
Есть контейнер (container) - это уже запущенный образ.
По сути изолированный процесс с файловой системой, сетью и настройками.
Docker Engine - сердце всей системы.
Он принимает команды через CLI/API и управляет контейнерами.
Docker Daemon - фоновый процесс, который:
• создаёт контейнеры
• запускает их
• следит за состоянием
Docker Client - то, через что ты работаешь (docker CLI).
Docker Hub / Registry - место, где хранятся образы.
Оттуда ты делаешь pull, туда - push.
Как это работает в реальности:
Ты пишешь Dockerfile →
docker build → получаешь image
docker push → отправляешь в registry
На сервере:
docker pull → скачал
docker run → запустил контейнер
Зачем это:
Одинаковая среда везде (dev = prod)
быстрый деплой без «у меня работает»
изоляция сервисов
масштабирование через контейнеры
Если упростить до одной мысли:
Docker - это не про контейнеры.
Это про предсказуемый запуск кода в любой среде.
Post #2055
1.8K

- 👍 10
- ❤ 1