J'ai essayé de créer un environnement de WSL2 + Docker + VSCode

Quel genre d'article

Je laisserai les détails de WSL2 etc. à d'autres personnes, mais pour le moment j'ai essayé de résumer les choses qui se sont coincées dans l'installation etc.

J'étais en difficulté sans vérifier correctement la procédure, donc j'écrirai certaines choses que j'ai eu des problèmes après la procédure officielle. (Tout le monde est encouragé à lire correctement la documentation)

Les détails seront dans Docs anglais, mais je pense que vous devriez jeter un œil à la version officielle. Si vous êtes intéressé par les matériaux de référence, veuillez vérifier uniquement les éléments dans les matériaux de référence en bas.

Conditions préalables

Vous devez vérifier la version de build de Windows.

Ouvrez Exécuter à partir de la commande dans Windows + R et entrez la commande suivante.

winver

Il sera affiché comme suit.

image.png

Assurez-vous que la valeur de cette version est 1903 ou supérieure. (Ce numéro sera pertinent plus tard.)

Préparation pour WSL2

J'ai préparé un lien en anglais ci-dessous, mais veuillez ne pas le traduire en japonais. Parce qu'à l'heure actuelle (au 23 septembre 2020), le document anglais a été mis à jour en premier, le contenu est donc un peu différent du document japonais. Il y a peut-être eu une mise à jour récente et je ne l'ai pas encore mise à jour en japonais (la version anglaise a été mise à jour le 15/09/2020).

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

Ouvrez Power Shell avec des privilèges d'administrateur et exécutez la commande suivante. La commande suivante active WSL.

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

(Vous devez peut-être redémarrer ici d'abord) Activez ensuite la fonctionnalité optionnelle «Virtual Machine Platform».

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

Redémarrez maintenant votre PC.

Supprimez le fichier msi à partir du lien ci-dessous et exécutez-le pour mettre à jour le noyau Linux. (S'il s'agit de documents japonais, ce n'était pas encore nouveau, alors je suis resté coincé)

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

Enfin, définissez la version par défaut de WSL sur WSL2.

wsl --set-default-version 2

Le WSL ajouté après cela peut être WSL2.

Préparer Ubuntu

Mettez Ubuntu dans le Microsoft Store. image.png

Je pense que vous pouvez choisir parmi les trois sur la gauche. J'utilise Ubuntu-20.04 ici. Il n'y a pas de raison particulière.

Préparation du code VS

Installons l'extension.

image.png

Cliquez avec le bouton droit sur le Linux souhaité (téléchargé sur le Microsoft Store) et sélectionnez "Connect WSL". image.png

Il semble que quelque chose s'est mal passé. image.png

Après cela, l'opération du côté WSL a été effectuée à partir d'ici.

Préparation de Docker

Nous procéderons comme suit. https://docs.docker.com/docker-for-windows/wsl/

Exécutez la commande winver comme vous l'avez fait au début pour installer Docker Desktop pour chaque version. --1903 et plus: version Edge --2004 et plus: version stable

Télécharger le site https://hub.docker.com/editions/community/docker-ce-desktop-windows/

Accédez à la page Général depuis Paramètres.

image.png

Cochez Utiliser le moteur basé sur WSL 2 et Appliquer et redémarrer.

Définissez des paramètres tels que l'intégration WSL. Dans les paramètres de Docker Desktop, activez les éléments suivants et Appliquer et redémarrer. image.png

Lorsque je me suis connecté avec VSCode, j'ai pu appuyer sur la commande docker en toute sécurité! image.png

Point bouché

Les erreurs que j'ai causées du fait de ne pas suivre complètement l'ordre officiel en le touchant un peu avant (rires)

La commande wsl ne passe pas

En premier lieu, il y avait des moments où la commande wsl ne passait pas. Surtout lors de la correction, je n'ai pas joué avec le chemin de la variable d'environnement. Lorsque je l'ai redémarré ou que je suis entré à nouveau dans la commande, la commande est passée. Alors peut-être que j'ai raté quelques étapes.

Version WSL

C'était wsl (1) et je ne pouvais pas taper la commande docker. (Parce que j'ai raté la procédure) Si vous ouvrez Powershell avec des privilèges d'administrateur sur la machine d'origine et tapez la commande suivante

wsl -l -v

Je connaissais la version comme celle-ci. image.png

Si le WSL cible est ver1, utilisez la commande suivante pour élever ver.

wsl --set-version Ubuntu-20.04 2

La commande ci-dessus définit Ubuntu-20.04 sur WSL2 (voir l'image ci-dessus).

Points à vérifier en cas de blocage

Après tout, il est difficile (pour moi qui ne lis pas correctement) de le faire dans l'ordre. J'ai écrit un peu sur ce qui s'est passé lorsque cela s'est produit.

Découvrez d'où vient l'erreur (?)

Cette fois, les éléments VSCode, Docker Desktop et WSL2 sont impliqués. Ainsi, lorsqu'une erreur se produit, il est important de vérifier à partir de laquelle. Vous obtenez probablement une sorte d'erreur, alors ne paniquez pas et vérifiez le message d'erreur. (Plus précisément, cette fois, cela a conduit à vérifier à partir du message d'erreur que la version de wsl est différente, etc.)

Croyez en la documentation officielle (autant que possible en anglais)

Après tout, j'ai senti qu'il y avait de nombreuses erreurs dans ma procédure dans le modèle où des erreurs se produisent en se référant à la formule liée à une telle construction. Donc, j'ai senti qu'il était en quelque sorte efficace de vérifier le message d'erreur pour voir si quelque chose manquait, ou de recommencer depuis le début de la procédure.

S'il n'y a toujours pas d'informations, j'ai pensé qu'il serait préférable de rechercher sur le Web avec un message d'erreur distinct.

Matériel de référence

Recommended Posts

J'ai essayé de créer un environnement de WSL2 + Docker + VSCode
J'ai essayé de créer un environnement de serveur UML Plant avec Docker
J'ai essayé de migrer le portfolio créé sur Vagrant vers l'environnement de développement de Docker
Environnement de développement WSL2 + VSCode + Docker
Créer un environnement Docker avec WSL
05. J'ai essayé de supprimer la source de Spring Boot
J'ai essayé de réduire la capacité de Spring Boot
Quand j'ai essayé de créer un environnement pour PHP7.4 + Apache + MySQL avec Docker, je suis resté bloqué [Windows & Mac]
J'ai essayé de résumer les bases de kotlin et java
J'ai essayé d'expliquer la méthode
J'ai brièvement résumé la grammaire de base de Ruby
J'étais accro au réglage de laradock + VSCode + xdebug
J'ai essayé de créer un React.js x TypeScript x Material-UI sur un environnement docker
J'ai essayé de créer un environnement de développement padrino avec Docker
[Rails 6.0, Docker] J'ai essayé de résumer la construction de l'environnement Docker et les commandes nécessaires pour créer un portfolio
J'ai essayé de développer la fonction de cache d'Application Container Cloud Service dans l'environnement local
J'ai essayé de résoudre le problème de la "sélection multi-étapes" avec Ruby
Créer un environnement de développement Go avec WSL2 + Docker Desktop + VSCode (Remote --Containers)
J'ai essayé de créer un environnement de développement http2 avec Eclipse + Tomcat
J'ai essayé de vérifier le fonctionnement du serveur gRPC avec grpcurl
J'ai essayé de résumer les méthodes de Java String et StringBuilder
J'ai essayé de résoudre le problème de Google Tech Dev Guide
J'ai essayé de résumer les méthodes utilisées
J'ai essayé de résumer l'API Stream
J'ai essayé de construire AdoptOpenjdk 11 sur CentOS 7
Qu'est-ce que Docker? J'ai essayé de résumer
Comment créer un environnement Rails 6 avec Docker
J'ai essayé d'utiliser Docker parce que je ne veux pas polluer l'environnement local dans le développement de l'onglet Microsoft Teams de MS Learn
Problèmes auxquels j'étais accro lors de la création de l'environnement digdag avec docker
J'ai essayé de résumer les points clés de la conception et du développement de gRPC
01. J'ai essayé de créer un environnement avec SpringBoot + IntelliJ + MySQL (MyBatis) (Windows 10)
J'ai essayé d'utiliser pleinement le cœur du processeur avec Ruby
J'ai essayé de visualiser l'accès de Lambda → Athena avec AWS X-Ray
J'ai essayé de mesurer et de comparer la vitesse de Graal VM avec JMH
Après tout, je voulais prévisualiser le contenu de mysql avec Docker ...
J'ai essayé d'organiser la session en Rails
Créer un environnement Laravel / Docker avec VSCode devcontainer
Améliorer les performances de l'environnement de développement Docker
C # (base de l'encapsulation)
Je veux var_dump le contenu de l'intention
J'ai essayé de construire AdoptOpenJDK 8 (ajout: Amazon Corretto 8 également)
J'ai essayé de toucher Docker pour la première fois
J'ai essayé de configurer tomcat pour exécuter le servlet.