StudyCode
Почему 'у меня работает' больше не проблема: образы, контейнеры и Dockerfile.
Разработчик: Node.js 18, Ubuntu 22, 16GB RAM
Продакшн: Node.js 16, CentOS 7, 4GB RAMКод работает локально → не работает на сервере. Классика.
Виртуальная машина — полноценный компьютер внутри компьютера.
┌────────────────────────────────┐
│ VM: Ubuntu 22 + Node.js 18 │
│ ──────────────────────────── │
│ Гипервизор (VirtualBox, VMware)│
│ ──────────────────────────── │
│ Host OS: Windows / macOS │
│ ──────────────────────────── │
│ Железо │
└────────────────────────────────┘Минус: VM — это полная ОС (1-20 GB), медленный запуск (~минуты).
Контейнер использует ядро хост-ОС, но изолирует приложение.
┌───────────────┐ ┌───────────────┐
│ Container: app│ │ Container: db │ ← изолированы
│ Node.js 18 │ │ PostgreSQL │
└───────────────┘ └───────────────┘
Docker Engine
──────────────────────────────────
Host OS (Linux)
ЖелезоПлюсы: запуск за секунды, размер мегабайты, переносимость 100%.
❌ Virtual Machine
Размер: 1–20 GB. Запуск: минуты.
✅ Docker Container
Размер: 50–500 MB. Запуск: секунды.