
Windows 11 теперь умеет самостоятельно собирать, запускать и управлять Linux-контейнерами без фонового Docker Desktop. Microsoft называет эту функцию WSL Containers. Мы установили предварительную версию, прогнали через неё несколько реальных задач и готовы рассказать, что работает, где всё ещё нужен Docker и как запустить всё на своём ПК.
WSL Containers не следует путать со следующей версией WSL 2: мы уже рассказывали, как Microsoft опровергла слухи о WSL 3. Функция вышла в публичное превью, поэтому мы установили её, с нуля собрали собственный образ контейнера и прогнали его через несколько сценариев, чтобы понять, насколько всё стабильно.

Что такое WSL Container в Windows 11
WSL Container это встроенная функция Windows Subsystem for Linux, позволяющая создавать, запускать и управлять Linux-контейнерами напрямую из Windows без установки Docker Desktop, Podman Desktop или других сторонних сред выполнения. Решение поставляется в двух компонентах:
-
Первый компонент: утилита командной строки wslc.exe, которая добавляется в PATH после обновления WSL. Microsoft также предоставляет псевдоним container.exe, так что обе команды указывают на один исполняемый файл. Те, кто работал с Docker, узнают синтаксис: команды wslc run, wslc build и wslc container list выглядят почти как их аналоги в Docker.
-
Второй компонент: WSL Container API, распространяемый в виде NuGet-пакета с поддержкой C, C++ и C#. Разработчики Windows-приложений могут использовать его для интеграции Linux-контейнеров непосредственно в свои программы.
Вместо того чтобы требовать от пользователей установки отдельной среды выполнения, Windows-приложение может незаметно запустить Linux-контейнер в фоновом режиме для выполнения кода, доступного только под Linux, а затем уничтожить его после завершения задачи. Microsoft продемонстрировала это на примере Moonray: открытого движка рендеринга для Linux, который использовался при создании фильма “Дикий робот”: он работал внутри исполняемого файла Windows, и ничто не указывало на участие Linux.



Каждое Windows-приложение, использующее API, получает собственную виртуальную машину на основе Hyper-V, изолированную от контейнеров других приложений. Интерфейс командной строки также работает в своей виртуальной машине. Docker Desktop, напротив, запускает все контейнеры внутри одной общей ВМ, что, как и следовало ожидать, более эффективно.
WSL Containers жертвует частью ресурсной эффективности ради строгой изоляции между приложениями, чем и объясняется позиционирование Microsoft как решения, готового для корпоративного использования.
Тем не менее, оба варианта взаимодействуют с одним и тем же сервисом WSL, который уже управляет обычными дистрибутивами, а внутри Linux-виртуальной машины за работу контейнеров отвечает Moby: тот же открытый движок, что лежит в основе Docker. WSL Containers не изобретает контейнеры заново, а предоставляет Windows нативный интерфейс для работы с ними.
Как установить WSL Container на Windows 11
Пока WSL Container доступен только в предварительном канале WSL, поэтому для появления wslc на вашем ПК потребуется его включить.
-
Откройте Windows Terminal или PowerShell от имени администратора.
-
Выполните wsl –update –pre-release и дождитесь завершения загрузки.

-
Перезапустите WSL командой wsl –shutdown, затем закройте и снова откройте терминал.

shutdown WSL -
Проверьте установку командой wslc –version. Вы должны увидеть номер версии 2.9.3.0, что подтверждает успешную установку WSL Container.

- Выполните wslc –help, чтобы увидеть полный список команд и убедиться, что утилита работает.

На тестовой машине обновление заняло меньше двух минут при нормальном соединении. Если после обновления wslc не распознаётся, перезапустите терминал, а если не поможет — перезагрузите ПК. Поскольку это предварительная версия, могут встречаться шероховатости: несколько разработчиков в официальном блоге Microsoft сообщали о «Catastrophic failure, Error code: E_UNEXPECTED» при первом запуске контейнера. К счастью, мы не столкнулись с этой проблемой.
Если вы задаётесь вопросом, нужен ли для этого ПК с Copilot+, то ответ — нет: WSL Container поставляется как обычный компонент WSL. Однако модель изоляции на базе Hyper-V требует поддержки современной виртуализации, поэтому здесь важнее наличие современного процессора с включённой в BIOS или UEFI виртуализацией, чем для обычного дистрибутива WSL.
Создание и запуск контейнера с помощью wslc
После того как wslc заработал, мы пропустили стандартный пример hello-world и сразу перешли к более приближенному к реальной работе сценарию: собрали собственный образ из Containerfile и запустили в нём сервис.

Для начала быстрая проверка. Мы загрузили и интерактивно запустили контейнер с Debian:
wslc run -it debian:latest


Внутри контейнера команда uname -a вывела строку, связанную с ядром Linux из WSL2, подтверждая, что мы находимся в настоящем Linux-окружении, а не в прослойке совместимости.

Отключившись комбинацией Ctrl+P, Ctrl+Q и выполнив wslc ps -a, мы увидели контейнер с автоматически сгенерированным именем (mossy_sawtooth), временем запуска и текущим статусом.

Повторное подключение командой wslc attach mossy_sawtooth сразу вернуло нас в тот же сеанс оболочки.

Затем мы написали Containerfile, работающий аналогично Dockerfile, для упаковки небольшой утилиты инспекции Linux-файлов, которая запускает file, exiftool и binutils для любого переданного файла.

Вот как примерно выглядел этот файл:
FROM python:3.12-slim*
RUN apt-get update && \*
apt-get install -y –no-install-recommends \*
file exiftool binutils bsdmainutils coreutils && \*
rm -rf /var/lib/apt/lists/**
WORKDIR /app*
COPY requirements.txt .*
RUN pip install –no-cache-dir -r requirements.txt*
COPY app.py .*
EXPOSE 5000*
CMD [“python”, “app.py”]*
Сборка выполняется одной командой:
wslc build -t my-linux-inspector .

Сборка закешировала базовые слои, поэтому повторная сборка заняла считанные секунды, а не минуты. Команда wslc image ls подтвердила наличие образа с новым временем создания.

После этого мы запустили контейнер с пробросом порта, чтобы к Flask-серверу внутри Linux можно было обращаться из Windows:
wslc run -d -p 5000:5000 –name inspector my-linux-inspector
Открытие 127.0.0.1:5000 в браузере на стороне Windows привело к отображению веб-интерфейса утилиты без дополнительной настройки сети.

Сервис на ядре Linux, доступный через localhost в Windows, и всё это без стороннего ПО. Так кратко можно описать WSL Container.
Тестирование доступа к GPU внутри WSL-контейнера
Проброс GPU — это функция, которая больше всего интересует разработчиков в области ИИ и машинного обучения, поскольку от неё зависит, сможет ли Linux-контейнер использовать графическую карту, а не только процессор. WSL Container поддерживает её через флаг --gpus all, синтаксис которого знаком пользователям Docker:
wslc run --rm --gpus all pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime \
python -c "import torch; print(torch.cuda.is_available())"
WSL Container в корпоративной среде
Microsoft позиционирует WSL Container как решение для предприятий уже на этапе предварительной версии.
Существующий плагин Microsoft Defender для конечных точек теперь понимает события контейнеров, поэтому команды безопасности, отслеживающие WSL-дистрибутивы, получают ту же видимость контейнеров без развёртывания отдельных инструментов. Правда, эта возможность пока ограничена закрытым предварительным тестированием с отдельной регистрацией.
ИТ-администраторы уже сейчас могут управлять WSL Container через групповые политики и шаблоны ADMX, и вот две ключевые возможности для контролируемого парка устройств:
-
Во-первых, администраторы могут решать, разрешено ли сотрудникам использовать дистрибутивы WSL, контейнеры или и то, и другое.
-
Во-вторых (и Microsoft отмечает, что это постоянно просили клиенты), администраторы могут создавать список разрешённых реестров контейнеров, ограничивая загрузку образов внутренним или одобренным реестром, а не оставляя Docker Hub полностью открытым.
Мы ожидаем полноценную поддержку этих настроек в панели Intune в течение нескольких недель после выхода предварительной версии.
Расширение Dev Containers для VS Code также получило поддержку wslc начиная с версии 0.462.0-pre-release. Чтобы переключиться на него, достаточно открыть настройки Dev Container, найти поле Docker Path и изменить его на wslc. Переустанавливать расширения или перенастраивать проекты не потребуется.
Чего пока не хватает в WSL Container
На данный момент WSL Container не имеет аналога Docker Compose, поэтому проекты из нескольких сервисов, поднимающих базу данных, бэкенд и кэш через compose.yaml, пока не поддерживаются. Все протестированные контейнеры приходилось запускать по отдельности.

Конечно, самым большим упущением является отсутствие графической панели управления или чего-то вроде Docker Scout для сканирования образов. Многочисленная экосистема плагинов Docker Desktop также отсутствует. WSL Container не призван заменить Docker Desktop, Podman Desktop или Rancher Desktop, и все эти инструменты могут выиграть от той же низкоуровневой работы над платформой, включая новую файловую систему virtiofs, которая, по заявлениям Microsoft, вдвое ускоряет доступ к файлам Windows внутри контейнеров.
Также была переработана сетевая подсистема: появился экспериментальный режим Consomme, который передаёт трафик Linux через сетевой стек Windows вместо старой схемы NAT. Это призвано решить проблемы совместимости с VPN и прокси, которые годами раздражали пользователей WSL. Пока и virtiofs, и Consomme доступны только в WSL Container, но Microsoft заявила, что в будущем планирует добавить их и в обычные дистрибутивы WSL.
Стоит ли переходить с Docker Desktop прямо сейчас
Если вам нужен один контейнер с базой данных или небольшим сервисом при локальной разработке, WSL Container уже справляется без требования отдельной лицензии. Но для сценариев с Compose-файлами, несколькими связанными сервисами или экосистемой расширений Docker Desktop пока остаётся более функциональным инструментом.

Microsoft планирует выпустить WSL Container в общую доступность осенью 2026 года, и, учитывая, насколько синтаксис CLI уже близок к Docker, большинство недостающих функций, судя по всему, лишь вопрос времени.
Если вы уже используете Linux-контейнеры в Windows, запуск предварительной версии параллельно с Docker Desktop ничего не стоит и даёт WSL Container фору, прежде чем он станет вариантом по умолчанию.




Пока нет комментариев. Будьте первым!