При виртуализации создаётся полная виртуальная машина (VM), имитирующая физическую машину с собственным набором аппаратных ресурсов (процессор, память, диски и т.д.).
Каждая виртуальная машина запускает свою собственную операционную систему поверх гипервизора. Основные отличия виртуализациии:
- Полная изоляция: каждая виртуальная машина изолирована от других и имеет собственную копию ОС
- Большой расход ресурсов: виртуальные машины требуют значительных затрат на хранение образа ОС и выделение аппаратных ресурсов.
- Медленная работа: больше накладных расходов из-за дублирования ресурсов и уровней абстракции.
- Применение: подходит для сред, где важна полная изоляция
Контейнеры представляют собой легкие изолированные окружения, работающие в рамках одной общей операционной системы хоста.
Основное отличие заключается в том, что контейнеры разделяют ядро ОС, но имеют собственное пространство файловых систем, процессов и сетевых пространств.
Основные отличительные черты:
- Легкость и быстрота: контейнеры загружаются быстрее и занимают меньше места.
- Минимальные затраты ресурсов: меньшие накладные расходы на память и процессор, так как используется общее ядро.
- Быстрая разработка и доставка: упрощают упаковку и доставку приложений, обеспечивая консистентность среды между разработкой и продакшеном.
- Совместимость: контейнеры хорошо подходят для микроархитектуры, CI/CD-процессов и масштабируемых облачных платформ.
Контейнеризация отличается от виртуализации тем, что предоставляет более легкий уровень абстракции, т. е. виртуализирует только программные уровни выше операционной системы.
Виртуальная машина эмулирует работу аппаратного обеспечения, включая процессоры и устройства ввода-вывода, тогда как контейнер просто обеспечивает изолированное выполнение приложения и его зависимостей.