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