WSL 2, die zweite Iteration des Windows-Subsystems für Linux, ermöglicht es Ihnen, eine Linux-Umgebung nativ unter Windows auszuführen, ohne den Overhead einer virtuellen Maschine (VM). Es lässt sich auch gut in Windows integrieren und bietet Ihnen Zugriff auf die meisten Befehlszeilentools, Dienstprogramme und Anwendungen, die Sie von Linux gewohnt sind.
Diese Anleitung zeigt Ihnen, wie Sie WSL 2-Gästen ermöglichen, den podman
auszuführen , skopeo
, oder buildah
Befehle innerhalb von Windows mit der Linux-Distribution Ihrer Wahl (erhältlich im Microsoft Store). Von einem Fedora-Linux-Host-Betriebssystem-Startpunkt kommend, war ich neugierig, wie man Tools, mit denen ich am besten vertraut bin, innerhalb von Windows aktivieren und verwenden kann.
Voraussetzung:WSL 2
Um WSL 2 zu installieren, gehen Sie zur WSL-Installationsseite.
Verwenden Sie Powershell, um sicherzustellen, dass WSL 2 standardmäßig aktiviert ist:
PS> wsl –set-default-version 2
Informationen zu den wichtigsten Unterschieden zwischen WSL 1 und WSL 2 finden Sie in der WSL-Dokumentation.
Das Windows-Subsystem für Linux hat einen langen Weg zurückgelegt. Microsoft hat hart daran gearbeitet, die Trennung zwischen dem Host-Windows-Betriebssystem und dem Gast-Linux-Betriebssystem praktisch unsichtbar zu machen. Spezielle Treiber in den Kerneln jedes Systems erleichtern die Ausführung von Befehlen zwischen verschiedenen Shells und Befehlsfenstern und ermöglichen den gegenseitigen Dateisystemzugriff.
Mit dem folgenden Befehl und der Ausgabe in einem der Gäste können Sie bestätigen, dass Sie den WSL 2-Kernel korrekt verwenden:
$ uname -a
Linux BLD 5.10.16.3-microsoft.standard-WSL2 #1 SMP Fri Apr 2 22:23:49
UTC 2021 x86_64 x86_64 GNU/Linux
WSL 1-Gäste melden eine Kernel-Version als 4.14 oder ähnlich.
Kleine Änderungen in Ihren Gästen können die Integration noch nahtloser gestalten, einschließlich symbolischer Verknüpfung verschiedener Home-Verzeichnisdateien (.aws, .sh, .config usw.). Es gibt einen Hinweis darauf, wie dies direkt aus dem $HOME-Verzeichnis heraus erreicht werden kann:
Installieren Sie eine Linux-Distribution
Um eine Linux-Distribution zu installieren, finden Sie Ihren Favoriten im Microsoft Store.
Für diesen Artikel verwende ich Fedora, aber es stehen auch andere Distributionen zum Ausprobieren zur Verfügung. Podman funktioniert gut über Distributionen hinweg, sodass Sie jede Distribution verwenden können, mit der Sie am besten vertraut sind. Möglicherweise sind einige geringfügige Konfigurationsanpassungen erforderlich, aber diese sind im Allgemeinen in der Distributions- und Podman-Dokumentation dokumentiert. Ich habe mich für Fedora entschieden, weil es die Distribution war, die keine zusätzliche Einrichtung erforderte, um den neuesten Podman zum Laufen zu bringen.
Beim ersten Start werden die VM und zugehörige Technologien installiert. Sie werden aufgefordert, ein Passwort für den ersten Benutzer auszuwählen (der sudo-Zugriff erhält).
Podman installieren
Sobald Ihre Linux-Distribution mit einem Benutzer installiert und konfiguriert wurde, können Sie podman wie gewohnt installieren:
$ sudo dnf install podman
Nach wenigen Augenblicken ist podman installiert und einsatzbereit. Sie können überprüfen, ob alles wie erwartet funktioniert:
$ podman info
host:
arch: amd64
buildahVersion: 1.22.3
cgroupControllers: []
cgroupManager: cgroupfs
cgroupVersion: v1
[...]
version:
APIVersion: 3.3.1
OsArch: linux/amd64
Version: 3.3.1
Von dort aus können Sie Bilder erstellen und Podman wie gewohnt verwenden.
Dank der WSL-Integration ist podman sogar über PowerShell oder die Eingabeaufforderung zugänglich und nutzbar:
buildah
installieren und verwenden und skopeo
Befehlen ist genau derselbe Vorgang.
Busybox-Test
Als einfacher Test, um podman
zu sehen Bei der Arbeit können Sie einen Busybox-Container ziehen und ausführen. BusyBox ist ein Open-Source-Projekt (GPL), das einfache Implementierungen von fast 400 gängigen Befehlen bereitstellt, darunter ls, mv, ln, mkdir, more, ps, gzip, bzip2, tar
, und grep
, was es zu einer angemessen minimalen Umgebung für Container und für einfache Tests wie diesen macht.
Suchen Sie zunächst im Standard-Image-Repository nach einem Busybox-Container. Sie können dies entweder in Ihrem Linux-Terminal oder in Powershell tun.
$ podman search busybox
INDEX NAME DESCRIPTION
docker.io docker.io/library/busybox Busybox base image
docker.io docker.io/radial/busyboxplus Full-chain...
docker.io docker.io/yauritux/busybox-curl Busybox with CURL
Führen Sie diejenige aus, die Sie ausprobieren möchten:
$ podman run -it docker.io/library/busybox
/ #
Sie können den Container verwenden, einige Befehle ausführen, um zu überprüfen, ob alles wie erwartet funktioniert, und ihn dann mit beenden verlassen Befehl.
Linux-Container
- Was sind Linux-Container?
- Eine Einführung in die Containerterminologie
- Download:Einführung in Container
- Kubernetes-Operatoren:Automatisierung der Container-Orchestrierungsplattform
- eBook:Kubernetes-Muster zum Entwerfen cloudnativer Apps
- Was ist Kubernetes?
Loslegen
Ich gebe zu, ich war überrascht, wie bereitwillig die aktuellen Linux-Distributionen da draußen, Podman, und das Windows-Subsystem hier zusammengearbeitet haben. Es ist offensichtlich, dass viel großartige Arbeit in die Container-Tools von Windows und die Integration mit Linux geflossen ist. Ich hoffe, dass dieser Leitfaden anderen dabei hilft, diesen Ausgangspunkt leicht zu erreichen und produktiv zu werden.
Es gibt viele gute Kandidaten für eine gründliche Nachverfolgung, einschließlich der Arbeit mit Volumes, der Bereitstellung von Netzwerkdiensten zwischen dem Gast und dem Host und der Bereitstellung von Linux-Funktionen in diesen Containern. Bei so vielen verfügbaren Tools bin ich sehr zuversichtlich, dass die Community kurze Arbeit damit machen wird, sie zu durchsuchen!