Официально запущен контейнер Microsoft WSL, Windows в дальнейшем становится платформой для работы с контейнерами Linux

📅 2026-10-01

Аннотация:

Майкрософт перевела контейнеры WSL из общедоступной предварительной версии в общедоступную версию. Пользователи могут запустить «wsl --update», чтобы получить связанные функции, включая инструмент командной строки wslc.exe и API контейнеров WSL. Хотя номер официальной версии на GitHub — WSL 3.0.1, это не означает, что Microsoft выпустила WSL 3; Microsoft ранее отрицала существование этой новой версии.

Раньше, если разработчики Windows хотели запускать контейнеры Linux, им обычно требовалось установить Docker Desktop или вручную настроить Docker Engine в дистрибутиве WSL Linux. WSL Containers интегрирует рабочие процессы контейнеров непосредственно в WSL. wslc.exe можно использовать для создания, запуска, управления и развертывания контейнеров Linux из Windows. Он также предоставляет файлContainer.exe в качестве псевдонима. Разработчики, знакомые с Docker, также могут использовать подобные команды. Вспомогательный API позволяет собственным приложениям Windows создавать контейнеры Linux и управлять ими с помощью кода, а также поддерживает вызовы C# и C++/WinRT, стандартный ввод и вывод, монтирование файлов, доступ к сети и графическому процессору.

Updating-WSL-to-version-3.0.1-to-get-Containers-in-general-availability.jpg

Здесь «родной» не означает, что контейнер работает на ядре Windows. Контейнер фактически работает на ядре Linux на виртуальной машине WSL. Microsoft изменила способ управления сеансами контейнера. Обычные приложения WSL создают виртуальные машины через службу Windows wslservice.exe с более высокими разрешениями; WSL Containers использует эту службу для создания подпроцесса с именем wslcsession.exe, который создает контейнеры, монтирует каталоги и привязывает сетевые порты от имени пользователя. Microsoft заявила, что каждый сеанс организуется независимым процессом, что может усилить изоляцию; разрешения, необходимые для операций сеанса, также ниже, чем у wslservice.exe, что помогает повысить безопасность.

Каждый сеанс имеет независимый виртуальный жесткий диск, который сохраняется в каталоге данных пользовательского приложения. Контейнеры могут использовать папки Windows посредством монтирования томов. Microsoft использует virtiofs для совместного использования каталогов с виртуальными машинами, заявляя, что это примерно в два раза быстрее, чем решение Plan 9, используемое традиционными дистрибутивами WSL для доступа к диску C. Для контейнеров, которым требуются собственные файловые системы Linux или ограниченная емкость хранилища, можно использовать тома виртуальных жестких дисков.

wslc-ubuntu.jpgRunning-uname-a-inside-a-WSL-container-confirms-it-is-a-real-Linux-kernel-not-a-translation-layer.png

В официальной версии добавлены такие команды, как перезапуск контейнера, копирование файлов, сетевое подключение и отключение, дополнительные параметры сетевого драйвера, проверка работоспособности контейнера и монтирование каталога при создании и запуске контейнеров. Сеть также представляет архитектуру под названием Consommé. Сетевой трафик виртуальной машины Linux будет поступать в очередь virtio в виде кадров Ethernet, а затем процесс Windows будет выполняться, пока пользователь обрабатывает DNS-запросы, трафик TCP и UDP, а также сопоставление портов. Microsoft заявила, что этот метод более совместим с VPN и межсетевыми экранами и устранит сетевые проблемы, с которыми уже давно сталкиваются пользователи WSL. В предыдущих тестах Windows могла получить доступ к службе Flask, работающей в контейнере, через локальный хост без дополнительной настройки сети.

The-Flask-server-inside-the-Linux-container-reached-through-localhost-on-Windows-with-no-extra-networking-setup.png

Microsoft также добавляет возможности управления и безопасности для корпоративного использования. ИТ-администраторы могут включать или отключать контейнеры WSL через Microsoft Intune и ограничивать получение образов контейнеров только из утвержденных реестров. Существующая интеграция WSL Microsoft Defender для конечной точки также распространяется на контейнеры, показывая активность процессов, файлов и сети внутри контейнера и сопоставляя ее с узлом Windows. Microsoft заявила, что эти возможности в сочетании с Intune и Defender могут обеспечить средства управления безопасностью, необходимые для корпоративных сред.

wslc-shows-the-full-command-list.jpg

Что касается инструментов разработки, Microsoft объявила, что расширение VS Code Dev Containers может использовать wslc в качестве драйвера контейнера. Расширение VS Code Containers и Aspire также поддерживают эту функцию. Менеджер по продукту Microsoft WSL Крейг Лоуэн рассказал, что пользователям достаточно выбрать wslc в качестве исполняемой программы в настройках. Однако некоторые разработчики сообщают, что даже если расширение будет заменено официальной версией, Dev Containers по-прежнему будет сообщать, что команда docker не может быть найдена, что указывает на то, что текущую интеграцию редактора, возможно, все еще необходимо проверить и настроить.

Поддержка Compose, которую разработчики ждут больше всего, все еще находится в стадии разработки. Compose может записать несколько контейнеров, таких как интерфейсный, внутренний API, базу данных и кеш, в один и тот же файл конфигурации compose.yaml, а затем запустить весь набор сервисов с помощью одной команды. Microsoft заявила, что Compose в настоящее время является наиболее востребованной функцией wslc, и надеется, что в будущем «wsl compose up» сможет напрямую запускать существующие файлы конфигурации без изменений. Во время предыдущих тестов из-за отсутствия Compose разработчики могли запускать сервисы в многоконтейнерных проектах только по одному.

wslc-storage.webpwslc-network.webp

В некоторых продвинутых сценах все еще есть пробелы. Инженеры Microsoft упомянули, что разработчики могут попытаться использовать проект сообщества wslc-remote, который они поддерживают, для создания и распространения образов в дистрибутив WSL; Microsoft надеется поддерживать встроенную поддержку в будущем, но ей все еще приходится иметь дело со многими особыми ситуациями. Другие пользователи заявили, что отсутствие поддержки параметра --privileged вынудило их вернуться к Docker для запуска кластеров Kubernetes kind и k3d. Microsoft заявила, что соответствующие функции будут запущены в ближайшее время, код вошел в основную ветку и, как ожидается, вскоре перейдет в стадию предварительного просмотра. Таким образом, официальная доступность не означает, что wslc обладает всеми функциями зрелой контейнерной платформы.

Контейнеры WSL также поддерживают Windows 10 и Windows Server. Менеджер по продукту Microsoft WSL заявил, что пока текущая система поддерживает WSL, контейнеры можно запускать; Windows Latest ранее уже тестировала wslc в Windows 10 и успешно создала и запустила панель мониторинга Flask. Microsoft подтвердила, что Windows Server также поддерживает использование этой функции в производственных средах.

WSL-Container-in-Windows-10.jpgWSL-running.jpg

В отчете это изменение противопоставляется прошлому отношению Microsoft к Linux. Бывший генеральный директор Microsoft Стив Балмер однажды назвал Linux «раком». Сегодня Microsoft продолжает совершенствовать WSL, открывать его исходный код и улучшать доступ к файлам и сетевые возможности между Windows и Linux. Microsoft заявила, что Linux теперь больше не просто среда разработки, но также может размещать рабочие нагрузки искусственного интеллекта и облачных вычислений; в статье также упоминается, что Google предоставляет встроенную поддержку Windows 11 и WSL для своих новых инструментов искусственного интеллекта, а Canonical заявила, что темпы роста Ubuntu на Windows 11 превысили темпы роста на родных компьютерах Linux. Несмотря на это, автор считает, что большинство разработчиков не откажутся от Docker Desktop непосредственно перед завершением Compose и некоторыми расширенными функциями; если немодифицированную конфигурацию Compose можно будет запустить напрямую в будущем, больше людей могут рассмотреть возможность удаления Docker Desktop.

Связанные теги

Похожие статьи

Комментарии

0/500
Captcha (click to refresh)
Нет комментариев