Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Diese Schritt-für-Schritt-Anleitung hilft Ihnen beim Einstieg in das Erstellen und Ausführen von Linux-Containern unter Windows mit wslc.exe, der in WSL integrierten Container-CLI.
wslc.exe bietet eine vertraute CLI zum Erstellen, Versenden und Ausführen von containerisierten Apps.
Übersicht über WSL-Container
Ein Container ist ein Tool zum Erstellen, Bereitstellen und Ausführen von Anwendungen. Mit Containern können Entwickler eine App mit allen benötigten Komponenten (Bibliotheken, Frameworks, Abhängigkeiten usw.) verpacken und als ein Paket versenden. Durch die Verwendung eines Containers wird sichergestellt, dass die App unabhängig von angepassten Einstellungen oder zuvor installierten Bibliotheken auf dem Computer, auf dem sie ausgeführt wird, dieselbe Leistung zeigt, unabhängig davon, dass diese sich von der Maschine unterscheiden können, die zum Schreiben und Testen des App-Codes verwendet wurde. Dadurch können Entwickler sich auf das Schreiben von Code konzentrieren, ohne sich Gedanken über das System zu machen, auf dem Code ausgeführt wird.
Voraussetzungen
- WSL installiert. Führen Sie
wsl --updateaus, um sicherzustellen, dass Sie die neueste Version haben. - Installieren Sie Visual Studio Code(optional). Dies bietet die beste Erfahrung, einschließlich der Möglichkeit zum Codieren und Debuggen Ihrer containerisierten Projekte, die mit Ihrer Linux-Verteilung verbunden sind.
- Installieren Sie Windows-Terminal(optional). Dies bietet die beste Erfahrung, einschließlich der Möglichkeit, mehrere Terminals in derselben Schnittstelle anzupassen und zu öffnen (einschließlich Ubuntu, Debian, PowerShell, Azure CLI oder was Sie bevorzugen).
Installieren und Überprüfen von wslc
wslc.exe ist in WSL enthalten, daher muss keine separate Engine installiert werden. Um sicherzustellen, dass Sie über eine Version von WSL verfügen, die sie enthält:
Installieren Sie WSL , falls noch nicht geschehen, und aktualisieren Sie dann auf die neueste Version, indem Sie PowerShell öffnen und Folgendes eingeben:
wsl --updateVergewissern Sie sich, dass
wslc.exeverfügbar ist, und überprüfen Sie ihre Version, indem Sie Folgendes eingeben:wslc versionTesten Sie, dass alles ordnungsgemäß funktioniert, indem Sie ein einfaches integriertes Image ausführen. Das Bild wird automatisch abgerufen, wenn es noch nicht lokal vorhanden ist:
wslc run --rm hello-worldEs sollte eine Meldung "Hello" angezeigt werden, die bestätigt, dass Ihre Installation ordnungsgemäß funktioniert.
Tipp
Hier sind einige hilfreiche wslc Befehle, die Sie kennen sollten:
- Auflisten der befehle, die in der
wslcCLI verfügbar sind, indem Sie Folgendes eingeben:wslc --help - Geben Sie Informationen für einen bestimmten Befehl an mit:
wslc <COMMAND> --help - Listen Sie die Images auf Ihrem Rechner auf, mit:
wslc image list - Listen Sie die laufenden Container auf Ihrem Rechner auf mit:
wslc container listoder listen Sie alle Container (einschließlich gestoppter Container) auf mit:wslc container list --all - Ressourcennutzungsstatistiken für Ihre laufenden Container anzeigen mit:
wslc stats
Ausführen Ihres ersten Containers
Mit wslc.exe können Sie Images herunterladen, Container im Vordergrund oder im Hintergrund ausführen, Ports freigeben und mit laufenden Containern interagieren. Probieren Sie einige dieser Befehle aus PowerShell aus:
# Run a command in a throwaway container
wslc run --rm -it ubuntu:latest bash -c "echo Hello world from WSL container!"
# Run a web server in the background and publish port 8080 to the container's port 80
wslc run -d --rm -p 8080:80 --name web nginx
# Request content from the running web server
curl localhost:8080
# List the running container
wslc container list
# Run an additional command inside the running container
wslc exec web cat /etc/os-release
# Stop the container
wslc container stop web
Da der nginx Container mit --rm gestartet wurde, wird er automatisch entfernt, sobald er beendet wird.
Erstellen und führen Sie Ihr eigenes Container-Image aus
Um mit der Entwicklung von Apps wslc.exezu beginnen, empfehlen wir die Verwendung von VS Code zusammen mit der WSL-Erweiterung , damit Sie Ihr Projekt im Linux-Dateisystem bearbeiten und Befehle über das integrierte Terminal ausführen wslc können.
Erstellen wir ein Containerimage für ein vorhandenes App-Projekt.
In diesem Beispiel verwenden wir den Quellcode aus dem Hallo Welt Lernprogramm für Django in der Python Entwicklungsumgebung, um Dokumente einzurichten. Sie können diesen Schritt überspringen, wenn Sie lieber Ihren eigenen Projektquellcode verwenden möchten. Um die HelloWorld-Django Web-App von GitHub herunterzuladen, öffnen Sie ein WSL-Terminal (z. B. Ubuntu), und geben Sie Folgendes ein:
git clone https://github.com/<username>/helloworld-django.gitHinweis
Speichern Sie Ihren Code immer im selben Dateisystem, in dem Sie Tools verwenden. Dies führt zu einer schnelleren Leistung des Dateizugriffs. In diesem Beispiel verwenden wir eine Linux-Distro (Ubuntu) und möchten unsere Projektdateien im WSL-Dateisystem
\\wsl$speichern. Das Speichern von Projektdateien im Windows-Dateisystem würde dies erheblich verlangsamen, wenn Sie Linux-Tools in WSL verwenden, um auf diese Dateien zuzugreifen.Wechseln Sie in Ihrem WSL-Terminal in den Quellcodeordner für dieses Projekt:
cd helloworld-djangoÖffnen Sie das Projekt in VS Code, das auf dem lokalen WSL-Erweiterungsserver ausgeführt wird, indem Sie Folgendes eingeben:
code .Vergewissern Sie sich, dass Sie mit Ihrer WSL Linux-Distribution verbunden sind, indem Sie die grüne Remoteanzeige in der unteren linken Ecke Ihrer VS Code-Instanz überprüfen.
Fügen Sie dem Stammverzeichnis Ihres Projekts ein
Containerfilehinzu, in dem beschrieben wird, wie das Image erstellt wird. Für das Django-Beispiel könnte ein minimalesContainerfilewie folgt aussehen:FROM python:3 WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . EXPOSE 8000 CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]Erstellen Sie aus dem Projektordner (dem Verzeichnis, das Ihr
ContainerfileEnthält), das Image mitwslc build, und markieren Sie es mit einem Namen, auf den Sie später verweisen können:wslc build -t helloworld-django .Vergewissern Sie sich, dass das Bild erstellt wurde, indem Sie Ihre Bilder auflisten:
wslc image listFühren Sie ihr neu erstelltes Image als Container aus, und veröffentlichen Sie den Port der App, damit Sie es über Windows erreichen können:
wslc run -d --rm -p 8000:8000 --name django helloworld-djangoUm zu überprüfen, dass Ihr Container läuft, listen Sie die laufenden Container auf und prüfen Sie dessen Protokolle:
wslc container list wslc container logs djangoÖffnen Sie unter Windows einen Browser, und rufen Sie
http://localhost:8000/auf, um Ihre App in ihrem Container auszuführen zu sehen. Sie können auch bestätigen, dass die App unter Linux ausgeführt wird, indem Sie einen Befehl im Container ausführen:wslc exec django unameDas
unameErgebnis von "Linux" bestätigt, dass der Container auf dem WSL 2 Linux-Kernel ausgeführt wird.Wenn Sie fertig sind, beenden Sie den Container:
wslc container stop django
Sie haben nun erfolgreich einen Linux-Container auf Windows mithilfe wslc.exevon WSL 2 erstellt und ausgeführt, den Sie zusammen mit VS Code erstellen, ausführen, bereitstellen oder debuggen können!
Problembehandlung
Container oder Image überprüfen
Wenn sich ein Container unerwartet verhält, stellen die inspect Befehle logs detaillierte Informationen bereit, mit denen Sie das Problem diagnostizieren können:
wslc container inspect <container-id>
wslc container logs <container-id>
wslc image inspect <image>
Freigeben von Speicherplatz
Images und beendete Container verbrauchen Speicherplatz. So bereinigen Sie Ressourcen, die Sie nicht mehr verwenden:
# Remove all stopped containers
wslc container prune
# Remove unused images
wslc image prune
Weitere Hilfe zur allgemeinen Problembehandlung in WSL finden Sie im Dokument zur Problembehandlung .
Weitere Ressourcen
Windows Subsystem for Linux