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

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

Für eine vollständige Nutzung des Projekts mit Docker unter WSL ist die Installation von WSL 2 erforderlich. Zum Zeitpunkt der Erstellung dieses Artikels kann es nur im Rahmen der Teilnahme am Windows Insider-Programm verwendet werden (WSL 2 ist in Build 18932 und höher verfügbar). Es ist auch erwähnenswert, dass eine Windows 10 Pro-Version für die Installation und Konfiguration von Docker Desktop benötigt wird.

Erste Schritte

Nach der Teilnahme am Windows Insider-Programm und der Installation der Updates müssen Sie eine Linux-Distribution installieren (in diesem Beispiel wird Ubuntu 18.04 verwendet) und Docker Desktop mit dem WSL 2 Tech Preview:

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

In beiden Punkten folgen Sie bitte allen Installations- und Konfigurationsanweisungen.

Installation der Ubuntu 18.04-Distribution

Vor dem Start von Ubuntu 18.04 müssen Sie WSL und die 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 Sie sicherstellen, dass wir WSL v2 verwenden. Dazu führen Sie nacheinander die folgenden Befehle im WSL-Terminal oder PowerShell aus:

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

Jetzt kann Ubuntu 18.04 gestartet und konfiguriert werden (Benutzername und Passwort angeben).

Installation von Docker Desktop

Während der Installation folgen wir den Anweisungen. Der Computer fordert nach der Installation und beim ersten Start einen Neustart an, um Hyper-V zu aktivieren (dessen Unterstützung die Windows 10 Pro-Version erfordert).

Wichtig! Wenn Docker Desktop eine Blockierung durch die Firewall meldet, gehen wir zu den Antiviren-Einstellungen und nehmen folgende Änderungen in den Regeln der Firewall vor (in diesem Beispiel verwenden wir Kaspersky Total Security):

  • Gehen Sie zu Einstellungen -> Schutz -> Firewall -> Paketregeln anpassen -> Local Service (TCP) -> Ändern.
  • Wir entfernen den Port 445 aus der Liste der lokalen Ports.
  • Speichern

Nach dem Start von Docker Desktop wählen wir im Kontextmenü die Option WSL 2 Tech Preview.

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

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

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

Nun sind docker und docker-compose innerhalb der WSL-Distribution verfügbar.

Wichtig! In der aktualisierten Docker Desktop-Version gibt es jetzt einen Tab für WSL innerhalb des Einstellungsfensters. Dort wird die Unterstützung für WSL aktiviert.

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

Wichtig! Neben der Aktivierung von WSL muss auch in dem Tab Ressourcen -> WSL-Integration Ihr WSL-Distribution aktiviert werden.

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

Start

Überraschend waren die vielen Probleme, die beim Versuch auftraten, Container von Projekten zu starten, die sich im Benutzerverzeichnis von Windows befinden.

Verschiedene Fehler, die mit dem Start von Bash-Skripten zusammenhängen (die normalerweise beim Erstellen von Containern zur Installation der benötigten Bibliotheken und Distributionen gestartet werden) und andere für die Entwicklung unter Linux übliche Dinge, brachten mich dazu, über die Platzierung von Projekten direkt im Benutzerverzeichnis von Ubuntu 18.04 nachzudenken.

.

Aus der Lösung des vorherigen Problems ergibt sich die nächste: Wie man mit den Projektdateien über eine IDE, die auf Windows installiert ist, arbeitet. Als "Best Practice" habe ich nur eine Option gefunden – die Arbeit über VSCode (obwohl ich ein Fan von PhpStorm bin).

Nach dem Herunterladen und Installieren von VSCode sollten Sie unbedingt die Erweiterung installieren. Remote Development extension pack.

Nach der Installation der oben genannten Erweiterung genügt es, den Befehl auszuführen. code . im Projektverzeichnis, während VSCode läuft.

In diesem Beispiel ist für den Zugriff auf die Container über den Browser nginx erforderlich. Installieren Sie ihn über sudo apt-get install nginx , was sich als nicht so einfach herausstellte. Zunächst war ein Update der WSL-Distribution erforderlich, indem sudo apt update && sudo apt dist-upgrade, und nur danach konnte die Installation von nginx gestartet werden.

Wichtig! Alle lokalen Domains werden nicht in der Datei /etc/hosts der Linux-Distribution (die dort nicht einmal vorhanden ist) festgelegt, sondern in der Datei hosts (normalerweise zu finden unter C:\Windows\System32\drivers\etc\hosts) in Windows 10.

Quellen

Eine detailliertere Beschreibung jedes Schrittes finden Sie hier:

Quelle: habr.com

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster