StudyCode
К практике
Начальный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%.