Контейнеры: кит с монетоприёмником 🐳

Автор: Raven2000 , 17 августа 2026
jail

На ноутбуках корпоративных разработчиков почти всегда живёт маленький кит — Docker Desktop.

Docker Engine бесплатен. Linux нативно запускает контейнеры. Но начиная с определённого масштаба компаниям нужна коммерческая лицензия Docker Desktop: организациям с численностью более 250 сотрудников или выручкой выше $10 млн требуется платная подписка. В публикации Vivian Voss указана цена $24 за пользователя в месяц: для команды из 500 разработчиков это $144 000 в год.

И вот здесь интересный вопрос.

Платят ведь не за контейнеры. Платят за "расстояние между ноутбуком разработчика и Linux-ядром", на котором этот контейнер реально работает.

Docker-цепочка

Код
 ↓
Dockerfile
 ↓
Image
 ↓
Registry
 ↓
dockerd
 ↓
Container

Это не плохо. Docker решил важную задачу Linux: воспроизводимая доставка приложения вместе с зависимостями.

Но вокруг запуска одного процесса часто появляется много обязательных сущностей:

Docker daemon
образы и слои
registry
volumes
overlay-сети
YAML-конфигурации
кеширование сборок
CI/CD
оркестрация

Для Kubernetes и большой распределённой платформы это оправданно. Но нужен ли весь этот слой, чтобы запустить сайт, reverse proxy, PostgreSQL, Redis, Zabbix, GLPI, DNS и тп?

В FreeBSD это уже есть

FreeBSD Jail появился в базовой системе ещё в 2000 году. Это изоляция процессов на уровне ядра: без обязательного daemon, registry и слоёв образов.

FreeBSD host
 ├── jail: web
 ├── jail: database
 ├── jail: monitoring
 ├── jail: mail
 └── jail: reverse-proxy

Jail получает своё окружение: процессы, hostname, сеть и файловую систему. При этом все jail используют ядро хоста.

А с ZFS получаем snapshots, клоны и быстрый rollback:

# Снимок перед обновлением

bastille zfs web snapshot before_update

# Если что-то пошло не так

bastille zfs web rollback before_update

 

Docker или Jail?

Не надо выбирать религию. Надо выбирать архитектурный слой под задачу.

Jail подходит, когда:

  • сервис нативно работает на FreeBSD
  • нужен лёгкий изолированный web, DB, DNS или monitoring-сервис
  • важны ZFS snapshots и простая эксплуатация
  • нет требования запускать готовый Docker-образ
  • хочется уменьшить количество компонентов в системе

Docker оправдан, когда:

  • поставщик даёт приложение только в Docker-образе
  • команда использует Docker Compose
  • инфраструктура построена вокруг Kubernetes
  • нужны готовые образы из Linux-экосистемы

Не нужно делать Docker платформой для всего. Пусть FreeBSD-сервисы живут в jail, а Linux-зависимые приложения — в отдельной VM.

Главная мысль

Иногда лучший container runtime — тот, который уже встроен в операционную систему.

  • Jail — нативная изоляция FreeBSD.
  • Bastille — удобное управление jail.
  • ZFS — snapshots, клоны и откаты.
  • bhyve — виртуальные машины для Linux и Docker-зависимостей.

Не «Docker против FreeBSD». А меньше лишних слоёв там, где они не нужны.

Теги

Комментарии