Microsoft выпустила первую публичную предварительную версию WSL Containers
Microsoft выпустила первую публичную предварительную версию WSL Containers
Microsoft выпустила первую публичную предварительную версию WSL Containers (WSLC) в рамках релиза WSL 2.9.3. Это новейшее расширение Windows Subsystem for Linux на Windows 11 позволяет разработчикам запускать контейнеры непосредственно в Windows без сторонних утилит.
Microsoft отметила, что контейнеры стали важной частью современной разработки — от облачных приложений и рабочих нагрузок ИИ до конвейеров тестирования и развёртывания. WSL Containers упрощает этот процесс, предоставляя встроенный, готовый к использованию в корпоративной среде способ создания, запуска и управления контейнерами Linux в Windows без дополнительных инструментов.
Для работы с WSL Containers доступны утилита wslc (или container.exe), похожая на docker, и API. Предварительная версия WSLC включает в себя все возможности управления жизненным циклом контейнеров, различные сетевые возможности, поддержку GPU, интеграцию SDK для C++ и C#/WinRT, а также другие инструменты и возможности, включая поддержку API в MSBuild и CMake. Благодаря API можно встроить операции в контейнерах непосредственно в нативные приложения Windows, определяя этапы создания контейнера непосредственно в файлах проекта.
Microsoft добавила VirtIOFS в качестве новой файловой системы по умолчанию для контейнеров WSL, что обеспечивает до двух раз более высокую производительность по сравнению с прошлой версией. Дополнительно были улучшены сетевые возможности и высвобождение неиспользуемой памяти. Заодно Microsoft представила экспериментальный сетевой режим Consomme, который обеспечивает улучшенную совместимость с различными сетевыми конфигурациями, направляя сетевой трафик Linux напрямую через Windows (т.е. с применением всех политики и т.п. самой Windows).
WSL Container добавляет две новые функции в WSL: встроенный интерфейс командной строки для контейнеров Linux и API для приложений Windows, позволяющий запускать контейнеры Linux в рамках их логики.
Интерфейс командной строки контейнера WSL –wslc.exe
После обновления до последней версии WSL в вашем пути появится новый исполняемый файл: . Вы можете использовать этот файл для выполнения всех рабочих процессов разработки контейнеров Linux, включая запуск, отладку, тестирование и многое другое!wslc.exe
Этот инструмент командной строки имеет привычный формат и возможности, что позволяет использовать уже имеющиеся навыки работы с контейнерами Linux. Например, вы можете запустить полноценный рабочий стол Linux в контейнере и подключиться к нему следующим образом: , или проверить доступ к графическому процессору с помощью скрипта CUDA: . Наконец, он также включает встроенный псевдоним для команды, который просто запускает , так что вы можете использовать команду или , в зависимости от ваших предпочтений.wslc run -d --name=webtop -e PUID=1000 -e PGID=1000 -e TZ=Etc/UTC -p 3000:3000 -p 3001:3001 lscr.io/linuxserver/webtop:ubuntu-kdewslc run --rm --gpus all pytorch/pytorch:2.5.1-cuda12.4-cudnn9-runtime python -c "import torch; print(torch.cuda.is_available()); print(torch.cuda.get_device_name(0))"container.exewslc.execontainerwslc
API контейнеров WSL
Теперь приложения Windows также могут напрямую использовать контейнеры в своей логике. WSL теперь поставляется с пакетом Nuget, который доступен на nuget.org, а также на странице релизов WSL . Он включает поддержку C, C++ и C#.
Теперь ваши нативные приложения для Windows могут использовать Linux в своих производственных процессах. Это может быть особенно полезно для повторного использования существующего кода, специфичного для Linux, запуска облачных приложений локально или ограничения доступа процесса Linux к ресурсам на хосте.
Этот API также интегрируется с MSBuild и CMake, поэтому вам достаточно добавить несколько строк в файлы проекта , и этапы сборки и развертывания контейнера станут частью процесса сборки вашего приложения — никаких ручных действий не потребуется!
Отслеживайте события безопасности в контейнерах с помощью Microsoft Defender for Endpoint (MDE).
Существующий плагин MDE для WSL обновлен и теперь также учитывает события контейнеров Linux, обеспечивая одинаковую защиту независимо от того, используете ли вы дистрибутив WSL или контейнеры. В настоящее время эта функция доступна в рамках закрытого предварительного тестирования
Управление настройками контейнеров WSL с помощью Intune.
Microsoft также добавляет новые параметры управления для контейнеров WSL. Вы сможете контролировать, могут ли пользователи использовать дистрибутивы WSL или контейнеры в вашей организации, а также указывать список разрешенных реестров контейнеров, которые могут использоваться для загрузки новых образов контейнеров. Одна из наших главных целей в этой области — помочь решить один из самых частых вопросов клиентов: «Как я могу контролировать, какие дистрибутивы/образы Linux разрешены в моей организации?». Использование контейнеров WSL и списка разрешенных реестров упрощает этот процесс. Эта функция доступна уже сегодня с помощью групповых политик (GPO) и политики ADMX , а официальная поддержка в панелях мониторинга Intune появится в течение следующих нескольких недель.
Контейнеры разработки VS Code
Многие предприятия также зависят от таких инструментов, как контейнеры разработки VS Code, и поддержка WSLc была добавлена в . Сейчас это находится в стадии предварительного выпуска, но вскоре станет общедоступной. Чтобы настроить эту функциональность, откройте настройки контейнера разработки VS Code, найдите параметр «Docker Path» и измените его на .0.462.0-pre-releasewslc
Дальнейшие улучшения в WSL
По мере развития функции контейнеризации WSL мы также значительно улучшаем базовую технологию, лежащую в основе как WSL, так и контейнеров WSL. Это включает в себя:
- Новая файловая система по умолчанию для контейнеров WSL: 'virtiofs', которая делает доступ к файлам Windows в 2 раза быстрее !
- В контейнере WSL появился новый сетевой режим по умолчанию: 'consomme', призванный улучшить совместимость.
- Совместимость — сложная проблема, поскольку существует множество различных сетевых конфигураций между VPN, прокси-серверами и другими средствами. Это экспериментальный сетевой режим, призванный решить некоторые из этих проблем. Проще говоря, Consomme перенаправляет сетевой трафик Linux через Windows, позволяя приложениям Linux использовать те же сетевые среды, политики безопасности и корпоративные интеграции, что и приложениям Windows.
- Усовершенствованные методы высвобождения памяти позволяют постепенно и последовательно освобождать память для хоста Windows, когда она не используется в виртуальной машине Linux.
Поскольку эти изменения затрагивают критически важные пути, такие как доступ к файловой системе и сети, на данный момент они включены только в контейнерах WSL, и мы работаем над тем, чтобы в будущем включить их в WSL по умолчанию. Существуют также другие замечательные инструменты командной строки для контейнеров Linux на Windows, которые построены на основе WSL, такие как Docker Desktop, Podman Desktop и Rancher Desktop, и все эти инструменты также выиграют от этих изменений платформы нижнего уровня, так что у вас будет отличный выбор высокопроизводительных инструментов для работы с контейнерами на Windows, отвечающих вашим потребностям.
