Что такое контейнеризация и чем она отличается от виртуализации?
Контейнеризация — это метод виртуализации на уровне операционной системы, при котором ядро ОС позволяет запускать несколько изолированных экземпляров пользовательского пространства (контейнеров) вместо одного.
Ключевые отличия от классической виртуализации
| Характеристика | Виртуализация (VM) | Контейнеризация |
|---|---|---|
| Уровень изоляции | Полная ОС с собственным ядром | Общее ядро хостовой ОС |
| Гипервизор | Требуется (VMware, VirtualBox, Hyper-V) | Не требуется |
| Размер | Гигабайты (полная ОС) | Мегабайты (только приложение и зависимости) |
| Время запуска | Минуты | Секунды |
| Потребление ресурсов | Высокое (каждая VM имеет свою ОС) | Низкое (контейнеры разделяют ядро) |
| Портативность | Ограничена форматом VM | Высокая (стандарт OCI) |
| Плотность | Десятки VM на хосте | Сотни/тысячи контейнеров на хосте |
Виртуальная машина эмулирует полный аппаратный сервер, включая процессор, память, диск, сеть, и на ней работает полноценная гостевая ОС. Контейнер же использует ядро хостовой ОС и изолирует только процессы, файловую систему и сеть с помощью механизмов Linux: namespaces (изоляция) и cgroups (ограничение ресурсов).
На собеседовании: ключевое отличие — контейнеры разделяют ядро хостовой ОС, а VM содержат полноценную гостевую ОС. Из-за этого контейнеры легче, быстрее стартуют, но дают меньшую изоляцию. Упомяните namespaces и cgroups — это покажет понимание внутренних механизмов.