Что такое VMM и почему о нём вообще заговорили

Docker Desktop славится тем, что позволяет запускать Linux-нативный Docker Engine на macOS и Windows прозрачно для пользователя. Чтобы это работало Desktop под капотом создаёт и обслуживает виртуальную машину, настраивает сеть, шаринг файловой системы и всю сопутствующую интеграцию с хостом. За создание этой ВМ отвечает virtual machine monitor (VMM, он же гипервизор). По сути это прослойка между железом хоста и контейнерами.

До сих пор Docker Desktop полагался на сторонние VMM. Hyper-V и WSL2 на Windows. А на macOS был HyperKit/Apple Virtualization Framework (p.s вообще сам Docker VMM для Apple Silicon существовал в бета-статусе ещё с версии 4.35, но именно как опция поверх Apple-фреймворка). Теперь же появляется полностью свой, first-party движок построенный, поддерживаемый и развиваемый самим Docker.

Диаграмма стека Docker: уровни Host, DockerVMM и Docker Engine.
Диаграмма стека Docker: уровни Host, DockerVMM и Docker Engine.

Что изменилось в версии 4.86

Docker теперь владеет всем стеком виртуализации целиком и может тюнинговать каждую его часть конкретно под контейнерные нагрузки, а не подстраиваться под чужой продукт с чужим roadmap`ом. Заявленные улучшения:

  • Более быстрый старт контейнеров. Ускорение заметно на всех сценариях: первый запуск, переключение между проектами, восстановление после рестарта.

  • Ускоренный файловый I/O. Обмен файлами между контейнером и хостом заметно быстрее, я думаю это должно ощущаться в каждом цикле edit-compile-test.

  • Более умное управление памятью. Docker VMM возвращает память хосту, когда контейнеры простаивают. То есть Desktop перестаёт "сидеть" на неиспользуемой RAM.

  • Стабильность на Windows. Впервые Windows-разработчики получают VMM, который написан и поддерживается самим Docker, а не сторонним поставщиком.

  • Изоляция без потери скорости. VMM по-прежнему работает в полностью изолированной ВМ. На Windows это описывается как "изоляция уровня Hyper-V при скорости уровня WSL2". Но так ли это мы узнаем уже со временем.

Важный нюанс, который стоит учитывать: единственная поддерживаемая файловая система для Docker VMM это VirtioFS. По данным документации Docker, переход на VirtioFS в своё время сократил время файловых операций на файловой системе до 98% по сравнению со старыми механизмами шаринга.

Один движок - для Desktop и для Sandboxes

Отдельно стоит отметить: тот же виртуализационный движок, что лежит в основе Docker VMM, питает и Docker Sandboxes ( изолированные окружения для запуска агентов и непроверенного кода). Это осознанное архитектурное решение: любое улучшение движка автоматически прилетает в оба продукта одновременно.

Стратегически это часть более крупного плана Docker - построить единый runtime, который охватывает ноутбук разработчика, облако и on-premise инфраструктуру, где контейнеры, Compose-приложения и AI-агенты являются равноправными гражданами одной платформы.

Как включить Docker VMM

Процедура отличается на macOS и Windows.

macOS. Если Docker VMM уже был включён в настройках (он существовал в бета-статусе с версии 4.35 для Apple Silicon), после обновления до 4.86 движок автоматически переключится на новую, полностью переписанную версию.

Windows. Нужно зайти в Settings потом в General. Там появился новый переключатель "Docker VMM". Его нужно включить вручную (по умолчанию он выключен).

Никакого feature-флага или waitlist нет: любой пользователь Docker Desktop версии 4.86 и выше может опробовать новый движок уже сегодня. У нас в РФ он также будет доступен.

Как протестировать Docker VMM самостоятельно

Готовых сторонних бенчмарков конкретно для этой (полностью переписанной) версии Docker VMM на момент официального анонса ещё немного. Бета только стартовала, и сам Docker пока не опубликовал развёрнутых цифр по сравнению со старыми движками в этом релизе. Поэтому лучший способ составить собственное мнение это потестить вручную.

  • Время старта контейнеров. Простой способ сравнить "до и после", замерить время выполнения через time:

   time docker compose up -d

Стоит прогнать несколько раз подряд (холодный старт vs. повторный запуск) и сравнить со старым VMM (Hyper-V/WSL2 на Windows, Apple Virtualization Framework на macOS).

  • Скорость файлового I/O. Классический тест - сборка проекта с большим количеством файлов (например, node_modules или сборка Go/Rust-проекта) в связке с volume-мамонтом, а также замер git status внутри контейнера с примонтированной host-директорией. Именно на этом сценарии Docker в прошлом демонстрировал наибольший выигрыш от VirtioFS.

  • Потребление памяти в простое. На Windows проверяйте через Task Manager (процесс, отвечающий за ВМ Docker). А на macOS проверяйте через Activity Monitor. Стоит оставить Docker Desktop открытым с остановленными контейнерами на 10–15 минут и посмотреть, возвращается ли память хосту.

  • Стабильность при длительной работе. Так как это бета, отдельного внимания заслуживает не только сырая производительность, но и стабильность при долгих сессиях: пересборки, множественные docker compose up/down, работа с большим количеством одновременно запущенных контейнеров.

Чего стоит ждать в будущем

Бета продлится до осени, и Docker явно фокусируется на реальных сценариях разработки: сборках, синхронизации файлов, паттернах запуска контейнеров, с которыми разработчики сталкиваются каждый день.

General Availability (GA) запланирован на конец октября 2026 года. С этого момента Docker VMM станет движком по умолчанию для всех новых установок Docker Desktop на macOS, Windows и, впервые, на Linux.