Windows 11 wprowadza kontenery WSL: Nowy sposób uruchamiania kontenerów Linuksa
Windows 11 pozwala teraz użytkownikom na natywne tworzenie, uruchamianie i zarządzanie kontenerami Linuksa, eliminując potrzebę korzystania z Docker Desktop jako runtime w tle. Ta nowa funkcja, nazwana WSL Containers, została wprowadzona w ramach publicznego podglądu. Po zainstalowaniu i przetestowaniu z rzeczywistymi obciążeniami, oto przegląd jej możliwości, ograniczeń i procesu konfiguracji.
Czym jest kontener WSL w Windows 11?
Kontener WSL to wbudowana funkcja Windows Subsystem for Linux (WSL). Umożliwia użytkownikom tworzenie, uruchamianie i zarządzanie kontenerami Linuksa bezpośrednio z Windows, bez konieczności korzystania z zewnętrznych runtime'ów, takich jak Docker Desktop czy Podman Desktop. Funkcja działa w dwóch częściach:
- Aplikacje Windows mogą w tle dyskretnie uruchamiać kontenery Linuksa w celu wykonania kodu dostępnego tylko dla Linuksa, bez widocznych oznak zaangażowania Linuksa. Na przykład Microsoft zademonstrował to, uruchamiając Moonray, open-source'owy silnik renderujący dla Linuksa, wewnątrz wykonywalnego pliku Windows.
- Każda aplikacja Windows korzystająca z API otrzymuje własną maszynę wirtualną opartą na Hyper-V w celu izolacji kontenerów. Podejście to priorytetowo traktuje bezpieczeństwo nad efektywność zasobów, co czyni je gotowym do zastosowań korporacyjnych.
Runtime kontenerów wewnątrz maszyny wirtualnej Linuksa to Moby, ten sam open-source'owy silnik, który napędza Dockera. Kontenery WSL nie wynajdują kontenerów na nowo, lecz oferują Windows natywny interfejs pierwszej strony do zarządzania kontenerami.
Jak zainstalować kontener WSL na Windows 11
Kontener WSL jest obecnie dostępny tylko w kanale przedpremierowym WSL. Aby rozpocząć, użytkownicy muszą zapisać się na ten kanał i zaktualizować instalację WSL.
- Zainstaluj najnowszą wersję przedpremierową WSL.
- Jeśli polecenie
wslcnie jest rozpoznawane, uruchom ponownie terminal lub komputer. - Upewnij się, że w BIOS lub UEFI włączona jest wirtualizacja dla izolacji opartej na Hyper-V.
Uwaga: Niektórzy deweloperzy zgłosili problemy, takie jak Katastrofalna awaria (Kod błędu: E_UNEXPECTED) podczas pierwszych uruchomień, choć nie napotkaliśmy ich podczas naszych testów. Kontener WSL nie wymaga komputera Copilot+, ale zależy od nowoczesnego wsparcia wirtualizacji CPU.
Budowanie i uruchamianie kontenera za pomocą kontenera WSL
Po skonfigurowaniu wslc pominęliśmy podstawowe przykłady i przetestowaliśmy go na rzeczywistym przypadku, budując niestandardowy obraz i udostępniając usługę. Poniżej znajdują się kroki:
- Kontrola podstawowa: Pobranie i interaktywne uruchomienie kontenera Debian za pomocą
wslc run -it debian:latest. Uruchomienieuname -apotwierdziło użycie prawdziwego jądra Linuksa. - Odłączenie i ponowne podłączenie: Odłączenie kontenera za pomocą
Ctrl+P, Ctrl+Q, wylistowanie kontenerów za pomocąwslc ps -ai ponowne podłączenie za pomocąwslc attach [container-name]. - Niestandardowy obraz: Utworzenie Containerfile (podobnego do Dockerfile) dla narzędzia inspekcji Linuksa, które pakuje takie narzędzia jak
file,exiftoolibinutils. Zbudowanie obrazu za pomocąwslc build -t my-linux-inspector .. - Uruchomienie usługi: Uruchomienie kontenera z mapowaniem portów za pomocą
wslc run -d -p 5000:5000 --name inspector my-linux-inspector. Dostęp do serwera Flask na127.0.0.1:5000z Windows bez dodatkowej konfiguracji sieciowej.
To zademonstrowało usługę opartą na jądrze Linuksa dostępną przez localhost w Windows, wszystko bez oprogramowania firm trzecich.
Testowanie dostępu do GPU w kontenerze WSL
Przekazywanie GPU jest kluczowe dla obciążeń związanych z AI i uczeniem maszynowym. Kontener WSL obsługuje to za pomocą flagi --gpus all, co odpowiada składni Dockera. W naszych testach kontener z dostępem do GPU znacznie przewyższył swojego odpowiednika korzystającego wyłącznie z CPU podczas uruchamiania skompilowanego modelu PyTorch.
Kontener WSL w środowiskach korporacyjnych
Microsoft pozycjonuje kontener WSL jako gotowy do zastosowań korporacyjnych, nawet w fazie podglądu. Kluczowe funkcje korporacyjne obejmują:
- Monitorowanie bezpieczeństwa: Microsoft Defender for Endpoint teraz śledzi zdarzenia kontenerów za pomocą swojego pluginu WSL, zapewniając widoczność działań w kontenerach.
- Kontrola polityki: Administratorzy IT mogą zarządzać kontenerami WSL za pomocą zasad grupy i polityk ADMX. Pełne wsparcie dla pulpitu nawigacyjnego Intune jest spodziewane wkrótce.
- Narzędzia deweloperskie: Rozszerzenie Dev Containers dla VS Code obsługuje
wslc, wymagając minimalnych zmian w konfiguracji.
Czego brakuje w kontenerze WSL
Choć obiecujący, kontener WSL ma kilka ograniczeń w obecnym stanie:
- Brak wsparcia dla Docker Compose, co czyni go nieodpowiednim dla projektów wielousługowych wymagających pliku
compose.yaml. - Brak graficznego pulpitu nawigacyjnego lub funkcji takich jak Docker Scout do skanowania obrazów.
- Brak rozbudowanego ekosystemu pluginów w porównaniu do Docker Desktop.
Microsoft wprowadził eksperymentalne funkcje sieciowe, takie jak Consomme, które kierują ruch Linuksa przez stos sieciowy Windows, rozwiązując problemy z VPN i proxy. Funkcje te, wraz z nowym systemem plików virtiofs dla szybszego dostępu do plików, są obecnie ekskluzywne dla kontenera WSL, ale mogą zostać rozszerzone na zwykłe dystrybucje WSL w przyszłości.
Czy warto przejść z Docker Desktop?
W przypadku scenariuszy z pojedynczym kontenerem, kontener WSL jest realną alternatywą dla Docker Desktop, zwłaszcza że nie wymaga osobnej licencji. Jednak w przypadku złożonych przepływów pracy obejmujących pliki Compose, wiele usług lub ekosystem pluginów Dockera, Docker Desktop pozostaje bardziej kompletnym rozwiązaniem.
Microsoft planuje ogólną dostępność kontenera WSL do jesieni 2026. Jego interfejs CLI ściśle przypomina Dockera, co sugeruje, że brakujące funkcje prawdopodobnie zostaną dodane z czasem. Na razie uruchomienie kontenera WSL obok Docker Desktop oferuje bezpłatny sposób na eksplorację tej nowej funkcjonalności.
