Docker-Entwicklung unter Windows Subsystem for Linux (WSL)




Um mit dem Projekt auf Docker in WSL vollständig arbeiten zu können, müssen Sie WSL 2 installieren. Zum Zeitpunkt des Schreibens können Sie es nur als Teil des Windows Insider-Programms verwenden (WSL 2 ist in Builds 18932 und höher verfügbar). Erwähnenswert ist auch, dass für die Installation und Konfiguration von Docker Desktop eine Version von Windows 10 Pro erforderlich ist.


Wichtig! WSL 2 benötigt Docker Desktop für Windows 10 nicht mehr. Wie Sie darauf verzichten können, finden Sie im Abschnitt Docker Pro in Ubuntu .



Erste Schritte


Nachdem Sie das vorläufige Evaluierungsprogramm aufgerufen und Updates installiert haben, müssen Sie die Linux-Distribution (in diesem Beispiel wird Ubuntu 18.04 verwendet) und Docker Desktop mit WSL 2 Tech Preview installieren:


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

In beiden Abschnitten befolgen wir alle Installations- und Konfigurationsanweisungen.


Installieren der Ubuntu 18.04-Distribution


Bevor Sie Ubuntu 18.04 starten, müssen Sie Windows 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

Nachdem Sie sichergestellt haben, dass wir WSL v2 verwenden. Führen Sie dazu im WSL- oder PowerShell-Terminal die folgenden Befehle nacheinander aus:


  • wsl -l -v - Sehen Sie, welche Version derzeit installiert ist. Wenn 1, gehen Sie weiter unten in der Liste
  • wsl --set-version ubuntu 18.04 2 - zum Upgrade auf Version 2
  • wsl -s ubuntu 18.04 - Installiere Ubuntu 18.04 als Standarddistribution

Jetzt können Sie Ubuntu 18.04 starten, konfigurieren (geben Sie einen Benutzernamen und ein Passwort an).


Installieren Sie Docker Desktop


Wichtig! WSL 2 benötigt Docker Desktop für Windows 10 nicht mehr. Wie Sie darauf verzichten können, finden Sie im Abschnitt Docker Pro in Ubuntu .


Befolgen Sie während der Installation die Anweisungen. Der Computer muss nach der Installation neu gestartet werden und startet zunächst Hyper-V (aufgrund dieser Unterstützung ist eine Version von Windows 10 Pro erforderlich).


Wichtig! Wenn Docker Desktop das Blockieren durch die Firewall meldet, gehen Sie zu den Antivireneinstellungen und nehmen Sie die folgenden Änderungen an den Firewallregeln vor (in diesem Beispiel wird Kaspersky Total Security als Antivirus verwendet):


  • Gehen Sie zu Einstellungen -> Schutz -> Firewall -> Paketregeln konfigurieren -> Lokaler Dienst (TCP) -> Ändern
  • Entfernen Sie Port 445 aus der Liste der lokalen Ports
  • Speichern

Wählen Sie nach dem Starten von Docker Desktop im Kontextmenü das Element WSL 2 Tech Preview aus.




Klicken Sie im folgenden Fenster auf die Schaltfläche Start.




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


Wichtig! Der aktualisierte Docker Desktop verfügt jetzt über eine Registerkarte mit WSL im Einstellungsfenster. Es enthält Unterstützung für WSL.




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




Starten Sie


Das Unerwartete waren die vielen Probleme, die beim Versuch auftraten, die Container von Projekten im Windows-Benutzerverzeichnis zu erhöhen.


Fehler verschiedener Art im Zusammenhang mit der Ausführung von Bash-Skripten (die normalerweise beim Erstellen von Containern für die Installation der erforderlichen Bibliotheken und Distributionen beginnen) und andere für die Linux-Entwicklung übliche Dinge ließen uns darüber nachdenken, Projekte direkt im Ubuntu 18.04-Benutzerverzeichnis abzulegen.

.

Von der Lösung des vorherigen Problems folgt Folgendes: Arbeiten mit Projektdateien über die unter Windows installierte IDE. Als "Best Practice" habe ich nur eine Option für mich gefunden - die Arbeit mit VSCode (obwohl ich ein Fan von PhpStorm bin).


Nach dem Herunterladen und Installieren von VSCode installieren wir es im Remote Development-Erweiterungspaket .


Führen Sie nach der Installation der obigen Erweiterung einfach den code . im Projektverzeichnis mit VSCode ausgeführt.


In diesem Beispiel ist nginx erforderlich, um über einen Browser auf Container zuzugreifen. Die Installation über sudo apt-get install nginx war nicht so einfach. Um loszulegen, musste die WSL-Distribution durch sudo apt update && sudo apt dist-upgrade und erst dann die nginx-Installation gestartet werden.


Wichtig! Alle lokalen Domänen sind nicht in der Datei / etc / hosts der Linux-Distribution (nicht einmal dort) registriert, sondern in der Hosts-Datei (normalerweise C: \ Windows \ System32 \ drivers \ etc \ hosts) in Windows 10.


Über Docker in Ubuntu


Wie von sachkundigen Benutzern in den Kommentaren zum Hinweis angegeben, ist Docker in der WSL 2-Distribution absolut funktionsfähig. Auf diese Weise können Sie Docker Desktop nicht unter Windows 10 installieren und das Problem einer Version von Windows 10 Pro lösen (die Notwendigkeit von Pro entsteht genau im Zusammenhang mit der Verwendung von Docker Desktop). Es wird gemäß den Anweisungen auf der Homepage installiert:



Wenn der Docker beim Ausführen des Befehls anfängt, auf den Dämon zu schwören, überprüfen Sie den Status des Dienstes - in meinem Fall wird er wie nginx nicht automatisch gestartet. Führen Sie es mit dem sudo service docker start .


Wenn zum Zeitpunkt der Montage der Fehler "Dienst konnte nicht erstellt werden: cgroups: cgroup-Mount-Ziel kann nicht gefunden werden: unbekannt" ausfällt, versuchen Sie die folgende Lösung (nicht meine, ich habe den Link in den Quellen gefunden): sudo mkdir /sys/fs/cgroup/systemd ; sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd .


Arbeiten Sie mit dem Projekt über PhpStorm


Um über PhpStorm mit einem Projekt in WSL arbeiten zu können, müssen Sie folgende Schritte ausführen:


  • Führen Sie die Windows 10-Eingabeaufforderung als Administrator aus.
  • Führen Sie an der Windows 10-Eingabeaufforderung den Befehl mklink /DC:\project_directory \\wsl$\Ubuntu\home\user\project_directory , wodurch eine symbolische Verknüpfung zum Projektordner erstellt wird.

Danach können Sie in der IDE das Projekt über den Pfad C: \ project_directory öffnen


PS Dmitry Simagin , danke für die Entscheidung.


Quellen


Eine detailliertere Beschreibung der einzelnen Schritte finden Sie hier:


Source: https://habr.com/ru/post/de474346/


All Articles