Kompletny przewodnik po kontenerach WSL: natywna alternatywa dla Dockera w systemie Windows

  • Implementacja natywnej warstwy kontenera Linux przy użyciu interfejsu wiersza poleceń wslc.exe i programowalnego interfejsu API dla programistów.
  • Architektura oparta na mikro-maszynach wirtualnych Hyper-V zapewniająca doskonałą izolację i wydajniejsze zarządzanie zasobami.
  • Eliminacja zależności od komercyjnych licencji innych firm dzięki bezpośredniej integracji z ekosystemem Windows 11.

Nowoczesne środowisko programistyczne z laptopem pokazującym edytor kodu do programowania w kontenerach WSL

Jeśli pracujesz w środowisku programistycznym, wiesz, że konfiguracja środowiska Linux w systemie Windows zawsze była nieco uciążliwa i wymagała użycia zewnętrznych narzędzi, które czasami były zbyt rozbudowane. Microsoft dokonał przełomu, wprowadzając WSL Containers – funkcję, która pozwala nam natywnie zarządzać obrazami i kontenerami Linuxa, bez konieczności przechodzenia przez żmudne procesy związane z Docker Desktop i jego skomplikowanymi licencjami korporacyjnymi.

To narzędzie nie jest zwykłą aktualizacją, ale zmianą paradygmatu w sposobie, w jaki system Windows obsługuje wirtualizację. Integrując możliwość uruchamiania kontenerów bezpośrednio z podsystemem Windows dla systemu Linux , celem jest stworzenie znacznie płynniejszego przepływu pracy, wyeliminowanie zbędnych warstw i umożliwienie programistom skupienia się na pisaniu kodu bez konieczności zmagania się z konfiguracją systemu operacyjnego.

Linux
Podobne artykuł:
Linux staje się niewidzialnym filarem telekomunikacji i chmury.

Czym właściwie są kontenery WSL?

Profesjonalny programista pracujący nad tworzeniem aplikacji przy użyciu podsystemu Windows dla systemu Linux

Mówiąc wprost, jest to nowa funkcja WSL, która umożliwia tworzenie i uruchamianie kontenerów Linux bez potrzeby korzystania z zewnętrznego demona. Jej sercem jest wslc.exe , interfejs wiersza poleceń zaprojektowany z myślą o intuicyjności, zwłaszcza dla osób znających już Dockera, ponieważ polecenia są bardzo podobne. Aby uniknąć nieporozumień, Microsoft dodał alias o nazwie container.exe.

Ale to nie wszystko. Opublikowano również API kontenerów WSL dostępne za pośrednictwem pakietu NuGet. To prawdziwa gratka dla tych, którzy tworzą natywne aplikacje Windows (używając C#, C++ lub C) i chcą, aby ich program wewnętrznie zarządzał kontenerami Linux, obsługując wejście/wyjście (stdin/stdout), montowanie sieciowe, a nawet bezpośredni dostęp do GPU dla zadań AI z wykorzystaniem PyTorch.

Kluczowe różnice w porównaniu z Docker Desktop

Infrastruktura serwerowa w centrum danych, przedstawiająca wirtualizację Hyper-V w systemie Windows 11

Wiele osób zastanawia się, czy to zastępuje Docker Desktop. Krótka odpowiedź brzmi: w wielu przypadkach tak. Podczas gdy Docker zazwyczaj używa jednej, współdzielonej maszyny wirtualnej Linux do wszystkiego, WSL Containers uruchamia niezależne mikro-maszyny Hyper-V dla każdego kontenera. Oznacza to, że każdy proces ma własny budżet pamięci i pamięci masowej, co zapobiega „szpiegowaniu” jednego kontenera przez drugi i poprawia bezpieczeństwo.

Kolejnym kluczowym punktem jest koszt. Docker Desktop wymaga płatności dla dużych firm, podczas gdy kontenery WSL są dołączone do systemu Windows 11 bez dodatkowych kosztów. Jest jednak ważny szczegół: potrzebujesz systemu Windows 11 Pro, Enterprise lub Education , ponieważ wersja Home nie obsługuje izolacji Hyper-V niezbędnej do działania wszystkich tych funkcji.

Czym jest projekt Yocto?
Podobne artykuł:
Czym jest projekt Yocto: kompletny przewodnik po systemach wbudowanych

Jak to uruchomić krok po kroku

Szczegółowe linie kodu na monitorze ilustrujące użycie interfejsu wiersza poleceń wslc.exe do zarządzania kontenerami

Jeśli chcesz zacząć eksperymentować, upewnij się, że masz wersję WSL 2.9.3 lub nowszą. Ponieważ jest ona wciąż w fazie zapoznawczej, musisz otworzyć terminal jako administrator i uruchomić polecenie `wsl --update --pre-release` . Po aktualizacji możesz włączyć tę funkcję, uruchamiając polecenie `wsl --install-feature containers`.

Aby sprawdzić, czy wszystko jest w porządku, wystarczy wpisać wslc versionJeśli chcesz uruchomić swój pierwszy kontener bez komplikacji, spróbuj z wslc run --rm hello-worldObraz zostanie automatycznie pobrany i wyświetli się powitanie potwierdzające, że system jest sprawny. W tym miejscu możesz użyć poleceń takich jak: kontener wslc ps zobaczyć, co żyje lub obraz wslc ls aby przejrzeć lokalne zdjęcia.

Tworzenie własnych obrazów i optymalizacja przepływu pracy

Podświetlane stojaki serwerowe symbolizujące wydajność i izolację mikro-maszyn WSL

Jeśli chcesz przenieść to na wyższy poziom, idealnym rozwiązaniem jest użycie Visual Studio Code z rozszerzeniem WSL. Aby utworzyć własny obraz, potrzebujesz pliku o nazwie Containerfile (bardzo podobnego do Dockerfile) oraz dobrych książek programistycznych , które pomogą Ci ustrukturyzować aplikację. Na przykład, jeśli tworzysz aplikację Django, zdefiniuj obraz Pythona, skopiuj wymagania i udostępnij port 8000.

Proces kompilacji jest prosty: używasz wslc build -t nazwa-twojej-aplikacji . a następnie uruchamiasz go za pomocą wslc run -d -p 8000:8000 --name mi-app nombre-de-tu-appNajpotężniejszą rzeczą jest to, że można to zintegrować z MSBuild lub CMake, dzięki czemu tworzenie kontenerów stanie się częścią procesu tworzenia Twojego projektu.

Czym jest OpenEmbedded
Podobne artykuł:
Czym jest OpenEmbedded i jak zmienia rozwój systemów wbudowanych Linux

Wydajność, sieć i pamięć masowa

Microsoft nie poprzestał na tym. Wdrożył virtiofs jako domyślny system plików, co znacznie przyspiesza transfer danych między systemami Windows i Linux, eliminując irytujące wąskie gardło powolnego montowania. Co więcej, istnieje eksperymentalny tryb sieciowy o nazwie consomme , który jest niezwykle przydatny dla osób pracujących w środowiskach korporacyjnych, ponieważ rozwiązuje typowe konflikty z korporacyjnymi sieciami VPN poprzez inteligentniejsze kierowanie ruchem.

Jeśli chodzi o zarządzanie zasobami, system bardziej agresywnie zwalnia pamięć dla hosta. Ponieważ są to lekkie maszyny wirtualne, po zatrzymaniu kontenera pamięć odzyskuje się szybciej niż w modelu monolitycznym. Aby utrzymać dysk w czystości, nie zapomnij użyć wslc container prune y wslc image prune aby usunąć to, czego już nie używasz.

Ta technologia stanowi znaczący krok naprzód, integrując konteneryzację bezpośrednio z rdzeniem systemu Windows 11, co pozwala programistom wyeliminować oprogramowanie innych firm i zoptymalizować wydajność poprzez izolację Hyper-V i system virtiofs. Dzięki interfejsowi wiersza poleceń wslc.exe i kompatybilności z VS Code, powstało solidne, darmowe i wydajne środowisko, które upraszcza uruchamianie obciążeń Linux, choć do pełnego wykorzystania jego możliwości wymagana jest profesjonalna edycja systemu Windows.


Dodaj jako preferowane źródło w Google