Docker использует концепцию контейнеров, которые облегчены и разделяют ядро операционной системы хоста. Виртуальная машина (ВМ) эмулирует полноценное аппаратное обеспечение, включая собственное ядро ОС.
Ключевые отличия:
Сравнение:
| Характеристика | Docker (Контейнер) | Виртуальная машина (ВМ) |
|---|---|---|
| Изоляция | Процессов на уровне ОС | Аппаратного обеспечения |
| Вес | Легкий | Тяжелый |
| Запуск | Быстрый | Медленный |
| Потребление ресурсов | Низкое | Высокое |
| Переносимость | Высокая | Ниже |
| Ядро ОС | Использует ядро хоста | Имеет собственное ядро |
| Гипервизор | Не требуется (использует движок контейнеризации) | Требуется (например, VMware, VirtualBox, Hyper-V) |
Пример структуры Dockerfile:
dockerfile