Entwicklung mit Docker im Windows Subsystem fĂŒr Linux (WSL)

Entwicklung mit Docker im Windows Subsystem fĂŒr Linux (WSL)

FĂŒr eine vollstĂ€ndige Arbeit mit dem Projekt in Docker unter WSL ist die Installation von WSL 2 erforderlich. Zum Zeitpunkt des Verfassens dieser Notiz ist ihre Nutzung nur im Rahmen der Teilnahme am Windows-Vorabprogramm möglich (WSL 2 ist in Build 18932 und höher verfĂŒgbar). Es ist auch zu erwĂ€hnen, dass eine Windows 10 Pro-Version fĂŒr die Installation und Konfiguration von Docker Desktop erforderlich ist.

Die ersten Schritte

Nach der Teilnahme am Vorabprogramm und der Installation der Updates muss ein Linux-Distribution installiert werden (in diesem Beispiel wird Ubuntu 18.04 verwendet) sowie Docker Desktop mit WSL 2 Tech Preview:

  1. Docker Desktop WSL 2 Tech Preview
  2. Ubuntu 18.04 aus dem Windows Store

In beiden Punkten folgen wir allen Anweisungen zur Installation und Konfiguration.

Installation der Ubuntu 18.04-Distribution

Vor dem Start von Ubuntu 18.04 muss WSL und die Windows Virtual Machine Platform aktiviert werden, indem zwei Befehle in PowerShell ausgefĂŒhrt werden:

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

Anschließend muss sichergestellt werden, dass wir WSL v2 verwenden. Dazu fĂŒhren wir in der WSL- oder PowerShell-Umgebung der Reihe nach die Befehle aus:

  • wsl -l -v — sehen wir, welche Version derzeit installiert ist. Wenn es 1 ist, gehen wir weiter auf der Liste
  • wsl --set-version ubuntu 18.04 2 — um auf Version 2 zu aktualisieren
  • wsl -s ubuntu 18.04 — setzen wir Ubuntu 18.04 als Standarddistribution

Jetzt kann Ubuntu 18.04 gestartet und konfiguriert werden (benutzername und passwort angeben).

Installation von Docker Desktop

Befolgen Sie wĂ€hrend der Installation die Anweisungen. Der Computer benötigt einen Neustart nach der Installation und beim ersten Start zur Aktivierung von Hyper-V (wegen dessen UnterstĂŒtzung ist Windows 10 Pro erforderlich).

Wichtig! Wenn Docker Desktop meldet, dass der Zugriff durch die Firewall blockiert ist, gehen Sie zu den Antivireinstellungen und nehmen Sie die folgenden Änderungen an den Regeln der Netzwerksicherheit vor (in diesem Beispiel wird Kaspersky Total Security verwendet):

  • Gehen Sie zu Einstellungen -> Schutz -> Netzwerkfirewall -> Paketregel anpassen -> Lokaler Dienst (TCP) -> Ändern
  • Aus der Liste der lokalen Ports entfernen wir den Port 445.
  • Speichern

Nach dem Start von Docker Desktop wĂ€hlen wir im KontextmenĂŒ den Punkt WSL 2 Tech Preview.

Entwicklung mit Docker im Windows Subsystem fĂŒr Linux (WSL)

Im sich öffnenden Fenster klicken wir auf die SchaltflÀche Start.

Entwicklung mit Docker im Windows Subsystem fĂŒr Linux (WSL)

Jetzt sind docker und docker-compose innerhalb der WSL-Distribution verfĂŒgbar.

Wichtig! In der aktualisierten Docker Desktop gibt es jetzt einen Tab mit WSL im Einstellungsfenster. Dort aktivieren wir die UnterstĂŒtzung fĂŒr WSL.

Entwicklung mit Docker im Windows Subsystem fĂŒr Linux (WSL)

Wichtig! Neben dem AktivierungshĂ€kchen fĂŒr WSL muss auch im Tab Ressourcen -> WSL-Integration Ihre WSL-Distribution aktiviert werden.

Entwicklung mit Docker im Windows Subsystem fĂŒr Linux (WSL)

Starten

Überraschend waren die vielen Probleme, die beim Versuch auftraten, die Container der Projekte, die im Benutzerverzeichnis von Windows liegen, zu starten.

Verschiedene Fehler, die mit dem Start von Bash-Skripten zusammenhĂ€ngen (die normalerweise beim Erstellen von Containern zur Installation erforderlicher Bibliotheken und Distributionen gestartet werden) und andere, fĂŒr die Entwicklung unter Linux typische Dinge, haben mich dazu gebracht, ĂŒber die Platzierung der Projekte direkt im Verzeichnis des Benutzers von Ubuntu 18.04 nachzudenken.

.

Aus der Lösung des vorherigen Problems ergibt sich folgendes: Wie man mit Projektdateien ĂŒber eine auf Windows installierte IDE arbeitet. Als 'Best Practice' habe ich nur eine Möglichkeit gefunden – die Arbeit ĂŒber VSCode (obwohl ich ein Fan von PhpStorm bin).

Nach dem Herunterladen und der Installation von VSCode installieren wir unbedingt die Erweiterung Remote Development extension pack.

Nach der Installation der oben genannten Erweiterung reicht es aus, einfach den Befehl code . im Projektverzeichnis auszufĂŒhren, wĂ€hrend VSCode lĂ€uft.

In diesem Beispiel ist nginx erforderlich, um ĂŒber den Browser auf die Container zuzugreifen. Es stellte sich heraus, dass die Installation ĂŒber sudo apt-get install nginx nicht ganz einfach war. ZunĂ€chst war es erforderlich, die WSL-Distribution durch AusfĂŒhren von sudo apt update && sudo apt dist-upgrade, und erst danach die Installation von nginx zu starten.

Wichtig! Alle lokalen Domains werden nicht in der Datei /etc/hosts der Linux-Distribution (die es dort nicht einmal gibt), sondern in der Datei hosts (in der Regel im Verzeichnis C:WindowsSystem32driversetchosts) von Windows 10 eingetragen.

Quellen

Detaillierte Beschreibungen jedes Schrittes finden Sie hier:

Quelle: habr.com

60GB SSD 8Gb DDR4