Entwicklung mit Docker auf dem Windows-Subsystem für Linux (WSL)

Entwicklung mit Docker auf dem Windows-Subsystem für Linux (WSL)

Um vollständig mit einem Docker-Projekt in WSL arbeiten zu können, müssen Sie WSL 2 installieren. Zum Zeitpunkt des Schreibens ist die Verwendung nur im Rahmen der Teilnahme am Windows Insider-Programm möglich (WSL 2 ist in Build 18932 und höher verfügbar). Es ist auch gesondert zu erwähnen, dass für die Installation und Konfiguration von Docker Desktop die Windows 10 Pro-Version erforderlich ist.

Erste Schritte

Nachdem Sie dem Insider-Programm beigetreten und Updates installiert haben, müssen Sie eine Linux-Distribution (in diesem Beispiel Ubuntu 18.04) und Docker Desktop mit WSL 2 Tech Preview installieren:

  1. Technische Vorschau auf Docker Desktop WSL 2
  2. Ubuntu 18.04 aus dem Windows Store

An beiden Stellen befolgen wir alle Installations- und Konfigurationsanweisungen.

Installation der Ubuntu 18.04-Distribution

Bevor Sie Ubuntu 18.04 ausführen, müssen Sie Windows WSL und Windows Virtual Machine Platform aktivieren, indem Sie zwei Befehle in PowerShell ausführen:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (erfordert einen Neustart des Computers)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Anschließend müssen wir sicherstellen, dass wir WSL v2 verwenden. Führen Sie dazu im WSL- oder PowerShell-Terminal die folgenden Befehle aus:

  • wsl -l -v — Sehen Sie sich an, welche Version derzeit installiert ist. Wenn 1, dann bewegen wir uns in der Liste weiter nach unten
  • wsl --set-version ubuntu 18.04 2 - zum Update auf Version 2
  • wsl -s ubuntu 18.04 — Installieren Sie Ubuntu 18.04 als Standarddistribution

Jetzt können Sie Ubuntu 18.04 starten und konfigurieren (Benutzernamen und Passwort angeben).

Docker Desktop installieren

Befolgen Sie die Anweisungen während des Installationsvorgangs. Der Computer muss nach der Installation und beim ersten Start neu gestartet werden, um Hyper-V zu aktivieren (für dessen Unterstützung Windows 10 Pro erforderlich ist).

Wichtig! Wenn Docker Desktop eine Blockierung durch die Firewall meldet, gehen Sie zu den Antivirus-Einstellungen und nehmen Sie die folgenden Änderungen an den Firewall-Regeln vor (in diesem Beispiel wird Kaspersky Total Security als Antivirus verwendet):

  • Gehen Sie zu Einstellungen -> Sicherheit -> Firewall -> Paketregeln konfigurieren -> Lokaler Dienst (TCP) -> Bearbeiten
  • Entfernen Sie Port 445 aus der Liste der lokalen Ports
  • Sparen

Wählen Sie nach dem Starten von Docker Desktop im Kontextmenü die Option „WSL 2 Tech Preview“ aus.

Entwicklung mit Docker auf dem Windows-Subsystem für Linux (WSL)

Klicken Sie im sich öffnenden Fenster auf die Schaltfläche „Start“.

Entwicklung mit Docker auf dem Windows-Subsystem für Linux (WSL)

Docker und Docker-Compose sind jetzt in der WSL-Distribution verfügbar.

Wichtig! Der aktualisierte Docker Desktop verfügt jetzt über eine Registerkarte mit WSL im Einstellungsfenster. Dort ist die WSL-Unterstützung aktiviert.

Entwicklung mit Docker auf dem Windows-Subsystem für Linux (WSL)

Wichtig! Zusätzlich zum Kontrollkästchen für die WSL-Aktivierung müssen Sie auch Ihre WSL-Verteilung auf der Registerkarte „Ressourcen->WSL-Integration“ aktivieren.

Entwicklung mit Docker auf dem Windows-Subsystem für Linux (WSL)

Starten

Was unerwartet war, waren die vielen Probleme, die beim Versuch auftraten, Projektcontainer zu entfernen, die sich im Windows-Benutzerverzeichnis befanden.

Fehler verschiedener Art im Zusammenhang mit dem Start von Bash-Skripten (die normalerweise beim Erstellen von Containern für die Installation der erforderlichen Bibliotheken und Distributionen beginnen) und andere bei der Entwicklung unter Linux übliche Dinge veranlassten uns, darüber nachzudenken, Projekte direkt im Benutzerverzeichnis von Ubuntu 18.04 zu platzieren.

.

Aus der Lösung des vorherigen Problems folgt Folgendes: So arbeiten Sie mit Projektdateien über eine unter Windows installierte IDE. Als „Best Practice“ habe ich für mich nur eine Option gefunden – die Arbeit mit VSCode (obwohl ich ein Fan von PhpStorm bin).

Stellen Sie nach dem Herunterladen und Installieren von VSCode sicher, dass Sie es in der Erweiterung installieren Erweiterungspaket für Remote-Entwicklung.

Führen Sie nach der Installation der oben genannten Erweiterung einfach den Befehl aus code . im Projektverzeichnis, wenn VSCode ausgeführt wird.

In diesem Beispiel ist Nginx erforderlich, um über den Browser auf Container zuzugreifen. Installieren Sie es über sudo apt-get install nginx Es stellte sich heraus, dass es nicht so einfach war. Zuerst mussten wir die WSL-Distribution durch Ausführen aktualisieren sudo apt update && sudo apt dist-upgrade, und starten Sie erst danach die Nginx-Installation.

Wichtig! Alle lokalen Domänen werden nicht in der Datei /etc/hosts der Linux-Distribution registriert (sie ist dort nicht einmal vorhanden), sondern in der Hosts-Datei (normalerweise unter C:WindowsSystem32driversetchosts) von Windows 10.

Quellen

Eine detailliertere Beschreibung der einzelnen Schritte finden Sie hier:

Source: habr.com

Kommentar hinzufügen