Ich habe versucht, eine Umgebung mit WSL2 + Docker + VSCode zu erstellen

Was für ein Artikel

Ich werde die Details von WSL2 usw. anderen Leuten überlassen, aber vorerst habe ich versucht, die Dinge zusammenzufassen, die in der Installation usw. stecken geblieben sind.

Ich war in Schwierigkeiten, ohne das Verfahren ordnungsgemäß zu überprüfen, daher werde ich einige Dinge schreiben, die ich nach dem offiziellen Verfahren in Schwierigkeiten hatte. (Jeder wird aufgefordert, die Dokumentation richtig zu lesen.)

Die Details werden in englischen Dokumenten veröffentlicht, aber ich denke, Sie sollten sich die offizielle Version ansehen. Wenn Sie an Referenzmaterialien interessiert sind, überprüfen Sie bitte nur die Punkte in den Referenzmaterialien unten.

Voraussetzungen

Sie müssen die Build-Version von Windows überprüfen.

Öffnen Sie In Windows + R Aus Befehl ausführen und geben Sie den folgenden Befehl ein.

winver

Es wird wie folgt angezeigt.

image.png

Stellen Sie sicher, dass der Wert für diese Version 1903 oder höher ist. (Diese Nummer wird später relevant sein.)

Vorbereitung auf WSL2

Ich habe unten einen englischen Link vorbereitet, aber bitte übersetzen Sie ihn nicht ins Japanische. Da das englische Dokument derzeit (Stand: 23. September 2020) zuerst aktualisiert wurde, unterscheidet sich der Inhalt ein wenig vom japanischen. Vielleicht gab es kürzlich ein Update und ich habe es noch nicht auf Japanisch aktualisiert (die englische Version wurde am 15.09.2020 aktualisiert).

https://docs.microsoft.com/en-us/windows/wsl/install-win10

Öffnen Sie die Power Shell mit Administratorrechten und führen Sie den folgenden Befehl aus. Der folgende Befehl aktiviert die WSL.

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

(Vielleicht müssen Sie hier zuerst neu starten) Aktivieren Sie dann die optionale Funktion "Virtual Machine Platform".

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Starten Sie nun Ihren PC neu.

Löschen Sie die MSI-Datei über den folgenden Link und führen Sie sie aus, um den Linux-Kernel zu aktualisieren. (Wenn dies japanische Dokumente sind, war es noch nicht neu, also blieb ich stecken)

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

Stellen Sie abschließend die Standardversion von WSL auf WSL2 ein.

wsl --set-default-version 2

Die danach hinzugefügte WSL kann WSL2 sein.

Ubuntu vorbereiten

Stellen Sie Ubuntu in den Microsoft Store. image.png

Ich denke, Sie können aus den drei links wählen. Ich benutze hier Ubuntu-20.04. Es gibt keinen besonderen Grund.

VS Code Vorbereitung

Lassen Sie uns die Erweiterung installieren.

image.png

Klicken Sie mit der rechten Maustaste auf das gewünschte Linux (aus dem Microsoft Store heruntergeladen) und wählen Sie "WSL verbinden". image.png

Es sieht so aus, als wäre etwas schief gelaufen. image.png

Danach wurde die Operation auf der WSL-Seite von hier aus durchgeführt.

Docker vorbereiten

Wir werden wie folgt vorgehen. https://docs.docker.com/docker-for-windows/wsl/

Führen Sie den Befehl winver wie zu Beginn aus, um den Docker Desktop für jede Version zu installieren.

Website herunterladen https://hub.docker.com/editions/community/docker-ce-desktop-windows/

Gehen Sie unter Einstellungen zur Seite Allgemein.

image.png

Aktivieren Sie die Option WSL 2-basierte Engine verwenden und Übernehmen und neu starten.

Nehmen Sie Einstellungen wie die WSL-Integration vor. Aktivieren Sie in den Docker Desktop-Einstellungen die folgenden Elemente und Übernehmen und neu starten. image.png

Als ich mich mit VSCode verband, konnte ich den Docker-Befehl sicher drücken! image.png

Verstopfter Punkt

Die Fehler, die ich verursacht habe, weil ich der offiziellen Anordnung nicht vollständig gefolgt bin, indem ich sie kurz zuvor berührt habe (lacht)

Der Befehl wsl wird nicht übergeben

Erstens gab es Zeiten, in denen der Befehl wsl nicht bestanden wurde. Insbesondere beim Beheben habe ich mich nicht mit dem Pfad der Umgebungsvariablen herumgeschlagen. Wenn ich es neu startete oder den Befehl erneut eingab, wurde der Befehl übergeben. Vielleicht habe ich nur ein paar Schritte verpasst.

WSL-Version

Es war wsl (1) und ich konnte den Docker-Befehl nicht eingeben. (Weil ich das Verfahren verpasst habe) Wenn Sie Powershell mit Administratorrechten auf dem Originalcomputer öffnen und den folgenden Befehl eingeben

wsl -l -v

Ich kannte die Version so. image.png

Wenn die Ziel-WSL ver1 ist, verwenden Sie den folgenden Befehl, um ver zu erhöhen.

wsl --set-version Ubuntu-20.04 2

Der obige Befehl setzt Ubuntu-20.04 auf WSL2 (siehe Abbildung oben).

Zu überprüfende Punkte bei Blockierung

Schließlich ist es schwierig (für mich, der nicht richtig liest), es in der richtigen Reihenfolge zu tun. Ich habe ein wenig darüber geschrieben, was passiert ist, als das passiert ist.

Finden Sie heraus, woher der Fehler (?) Stammt

Diesmal sind die Elemente VSCode, Docker Desktop und WSL2 beteiligt. Wenn also ein Fehler auftrat, war es wichtig zu überprüfen, von welchem. Sie erhalten wahrscheinlich eine Art Fehler, also keine Panik und überprüfen Sie die Fehlermeldung. (Diesmal führte dies insbesondere dazu, dass anhand der Fehlermeldung überprüft wurde, ob die Version von wsl unterschiedlich ist usw.)

Glauben Sie an die offizielle Dokumentation (so viel wie möglich auf Englisch)

Immerhin hatte ich das Gefühl, dass es in meinem Verfahren viele Fehler in dem Muster gab, in dem Fehler auftreten, wenn ich mich auf die Formel beziehe, die sich auf eine solche Konstruktion bezieht. Daher fand ich es irgendwie effektiv, anhand der Fehlermeldung zu überprüfen, ob etwas fehlte, oder von vorne zu beginnen.

Wenn es immer noch keine Informationen gibt, wäre es meiner Meinung nach besser, das Web mit einer separaten Fehlermeldung zu durchsuchen.

Referenzmaterial

Recommended Posts

Ich habe versucht, eine Umgebung mit WSL2 + Docker + VSCode zu erstellen
Ich habe versucht, mit Docker eine Plant UML Server-Umgebung zu erstellen
Ich habe versucht, das auf Vagrant erstellte Portfolio in die Entwicklungsumgebung von Docker zu migrieren
WSL2 + VSCode + Docker-Entwicklungsumgebung
Erstellen einer Docker-Umgebung mit WSL
05. Ich habe versucht, die Quelle von Spring Boot zu löschen
Ich habe versucht, die Kapazität von Spring Boot zu reduzieren
Als ich versuchte, mit Docker eine Umgebung für PHP7.4 + Apache + MySQL zu erstellen, blieb ich stecken [Windows & Mac]
Ich habe versucht, die Grundlagen von Kotlin und Java zusammenzufassen
Ich habe versucht, die Methode zu erklären
Ich habe die grundlegende Grammatik von Ruby kurz zusammengefasst
Ich war süchtig nach Laradock + VSCode + xdebug
Ich habe versucht, eine React.js x TypeScript x Material-Benutzeroberfläche in einer Docker-Umgebung zu erstellen
Ich habe versucht, mit Docker eine Padrino-Entwicklungsumgebung zu erstellen
[Rails 6.0, Docker] Ich habe versucht, die Konstruktion der Docker-Umgebung und die zum Erstellen eines Portfolios erforderlichen Befehle zusammenzufassen
Ich habe versucht, die Cache-Funktion von Application Container Cloud Service in der lokalen Umgebung zu entwickeln
Ich habe versucht, das Problem der "mehrstufigen Auswahl" mit Ruby zu lösen
Build Go-Entwicklungsumgebung mit WSL2 + Docker Desktop + VSCode (Remote - Container)
Ich habe versucht, mit Eclipse + Tomcat eine http2-Entwicklungsumgebung zu erstellen
Ich habe versucht, den Betrieb des gRPC-Servers mit grpcurl zu überprüfen
Ich habe versucht, die Methoden von Java String und StringBuilder zusammenzufassen
Ich habe versucht, das Problem des Google Tech Dev Guide zu lösen
Ich habe versucht, die verwendeten Methoden zusammenzufassen
Ich habe versucht, die Stream-API zusammenzufassen
Ich habe versucht, AdoptOpenjdk 11 unter CentOS 7 zu erstellen
Was ist Docker? Ich habe versucht zusammenzufassen
So erstellen Sie eine Rails 6-Umgebung mit Docker
Ich habe versucht, Docker zu verwenden, weil ich die lokale Umgebung bei der Entwicklung der Registerkarte "Microsoft Teams" von MS Learn nicht verschmutzen möchte
Probleme, denen ich beim Erstellen der Digdag-Umgebung mit Docker verfallen war
Ich habe versucht, die wichtigsten Punkte des gRPC-Designs und der Entwicklung zusammenzufassen
01. Ich habe versucht, eine Umgebung mit SpringBoot + IntelliJ + MySQL (MyBatis) (Windows 10) zu erstellen.
Ich habe versucht, den CPU-Kern mit Ruby voll auszunutzen
Ich habe versucht, den Zugriff von Lambda → Athena mit AWS X-Ray zu visualisieren
Ich habe versucht, die Geschwindigkeit von Graal VM mit JMH zu messen und zu vergleichen
Immerhin wollte ich den Inhalt von MySQL mit Docker in der Vorschau anzeigen ...
Ich habe versucht, die Sitzung in Rails zu organisieren
Erstellen Sie eine Laravel / Docker-Umgebung mit VSCode devcontainer
Verbessern Sie die Leistung der Docker-Entwicklungsumgebung
C # (Grund der Kapselung)
Ich möchte den Inhalt der Absicht var_dump
Ich habe versucht, AdoptOpenJDK 8 zu erstellen (zusätzlich: Amazon Corretto 8)
Ich habe zum ersten Mal versucht, Docker zu berühren
Ich habe versucht, Tomcat so einzustellen, dass das Servlet ausgeführt wird.