Ответ
Вопрос содержит распространенную терминологическую неточность. Docker по своей сути не использует и не требует гипервизора в классическом понимании (как VMware или KVM). Docker — это технология контейнеризации, а не виртуализации.
Ключевое отличие:
- Виртуализация (с гипервизором): Гипервизор эмулирует виртуальное железо для каждой гостевой ОС. Запускаются полноценные, изолированные операционные системы со своим ядром.
- Контейнеризация (Docker): Контейнеры разделяют ядро хостовой операционной системы, используя механизмы изоляции пространств имен (namespaces) и групп управления ресурсами (cgroups) ядра Linux. Это делает контейнеры гораздо более легковесными и быстрыми в запуске.
Откуда возникает путаница с «гипервизором»? Термин может появляться в двух контекстах:
- Docker Desktop для macOS и Windows: Поскольку macOS и Windows имеют другое ядро (не Linux), для запуска Linux-контейнеров требуется легковесная Linux-виртуальная машина. В Docker Desktop эта VM прозрачна для пользователя, но технически она запускается гипервизором:
- macOS: Используется гипервизор
HyperKit(на основе xhyve). - Windows: Используется
Hyper-V(включенный в Windows) илиWSL 2(подсистема Windows для Linux, которая также использует виртуализацию).
- macOS: Используется гипервизор
- Запуск Docker на Linux-хосте: На чистом Linux-сервере Docker работает нативно, без какого-либо гипервизора. Контейнеры запускаются непосредственно ядром хоста.
Практический пример — проверка среды:
# На Linux-хосте (нативная работа Docker)
docker run --rm alpine uname -a
# Вывод будет содержать то же ядро, что и у хоста, например: Linux <container_id> 5.15.0-xx-generic ...
# На Windows с Docker Desktop (WSL 2 backend)
docker run --rm alpine uname -a
# Вывод покажет ядро легковесной Linux VM, например: Linux <container_id> 5.10.102.1-microsoft-standard-WSL2 ...
Вывод: Говорить о «гипервизоре Docker» корректно только в контексте Docker Desktop на macOS/Windows. На Linux-серверах, где обычно развертываются production-контейнеры, Docker работает без гипервизора, что является одним из его ключевых преимуществ в плане производительности и эффективности использования ресурсов.