Docker — что это, контейнеры и образы простыми словами | Глоссарий FREEHOSTING

Docker

Docker
Docker — Docker — система контейнеризации, которая упаковывает приложение со всеми зависимостями в один образ и запускает где угодно одинаково. Решает проблему «у меня работало».

Определение простыми словами

Docker — инструмент, который собирает приложение и всё, что ему нужно (библиотеки, конфиги, рантайм), в один файл-образ. Этот образ запускается на любом сервере с Docker одинаково — и на ноутбуке разработчика, и на проде в дата-центре.

В отличие от виртуальной машины, контейнер не тащит с собой целую ОС: он использует ядро хоста и изолируется через namespaces и cgroups. Поэтому контейнер стартует за 1 секунду и весит десятки МБ вместо гигабайтов.

Контейнер vs виртуалка vs хост

Параметр Docker KVM (ВМ) Прямо на хосте
Старт ~1 сек 20–60 сек
Накладные расходы Минимум (общее ядро) Заметные (своё ядро) Нет
Изоляция Процесс/namespace Полная (гипервизор) Нет
Размер 5–500 МБ 1–20 ГБ
Запуск Windows Только Linux-контейнеры Любая ОС Любая ОС

Кейсы использования

  • Изолированный запуск WordPress + MySQL — два контейнера через docker-compose, поднимается одной командой.
  • CI/CD пайплайны — каждый билд в чистом контейнере, никаких «мусорных» зависимостей.
  • Микросервисы — каждый сервис в своём контейнере, оркестрация через Kubernetes.
  • Локальная разработка с разными версиями — Python 3.8 и 3.12 рядом без конфликтов.
  • Когда Docker НЕ нужен: один статический сайт на shared-хостинге не требует контейнеров — это лишний слой сложности.

Технические детали

Базовый Dockerfile и запуск контейнера:

FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "bot.py"]

# Сборка и запуск
docker build -t my-bot .
docker run -d --name bot --restart=always my-bot
docker logs -f bot

Образы хранятся в реестре (Docker Hub, GitHub Container Registry или приватный containerd). Минимальные требования к VPS: 1 vCPU, 1 ГБ RAM, 10 ГБ SSD. Альтернативы Docker — Podman (rootless) и LXC (системные контейнеры).

Частые вопросы

Чем Docker отличается от виртуальной машины?

Контейнер использует ядро хост-системы и весит десятки МБ. Виртуалка имеет своё ядро и весит гигабайты. Контейнер стартует за секунду, ВМ — за минуту.

Сколько контейнеров можно запустить на VPS с 2 ГБ RAM?

Зависит от приложений: 5–10 простых сервисов (бот, Nginx, Postgres) — без проблем. Тяжёлые (Elasticsearch, Java) — 1–2 максимум.

Подходит ли Docker для продакшена?

Да, это стандарт индустрии с 2015 года. Под нагрузкой используют оркестратор Kubernetes или Docker Swarm. Для одного сервера хватает docker-compose.

Можно ли запускать Docker на shared-хостинге?

Нет. Docker требует root-доступ к ядру, а shared-хостинг такого не даёт. Минимум — VPS на KVM.