Développement avec Docker sur le sous-système Windows pour Linux (WSL)
Pour travailler pleinement avec un projet Docker dans WSL, vous devez installer WSL 2. Au moment d'écrire ces lignes, il ne peut être utilisé que dans le cadre du programme Windows Insider (WSL 2 est disponible dans les versions 18932 et supérieures). Il convient également de mentionner séparément que vous avez besoin d'une version de Windows 10 Pro pour installer et configurer Docker Desktop.
Premiers pas
Après avoir rejoint le programme Insider et installé les mises à jour, vous devez installer une distribution Linux (Ubuntu 18.04 est utilisé dans cet exemple) et Docker Desktop avec WSL 2 Tech Preview :
Après cela, nous devons nous assurer que nous utiliserons WSL v2. Pour ce faire, exécutez les commandes suivantes dans le terminal WSL ou PowerShell :
wsl -l -v - voir quelle version est actuellement installée. Si 1, alors descendez dans la liste
wsl --set-version ubuntu 18.04 2 - pour passer à la version 2
wsl -s ubuntu 18.04 - installer Ubuntu 18.04 comme distribution par défaut
Vous pouvez maintenant démarrer Ubuntu 18.04, configurer (spécifiez le nom d'utilisateur et le mot de passe).
Installation de Docker Desktop
Suivez les instructions pendant le processus d'installation. L'ordinateur nécessitera un redémarrage après l'installation et au premier démarrage pour activer Hyper-V (c'est pourquoi Windows 10 Pro est requis).
Important! Si Docker Desktop signale un blocage du pare-feu, accédez aux paramètres antivirus et apportez les modifications suivantes aux règles du pare-feu (dans cet exemple, Kaspersky Total Security est utilisé comme antivirus) :
Allez dans Paramètres -> Sécurité -> Pare-feu -> Configurer les règles de paquet -> Service local (TCP) -> Modifier
Supprimer le port 445 de la liste des ports locaux
Enregistrer
Après avoir lancé Docker Desktop, sélectionnez WSL 2 Tech Preview dans son menu contextuel.
Dans la fenêtre qui s'ouvre, cliquez sur le bouton Démarrer.
Docker et docker-compose sont désormais disponibles dans la distribution WSL.
Important! Le Docker Desktop mis à jour a maintenant un onglet avec WSL dans la fenêtre des paramètres. La prise en charge WSL y est activée.
Important! En plus de la case à cocher d'activation WSL, vous devez également activer votre distribution WSL dans l'onglet Ressources-> Intégration WSL.
Запуск
Les nombreux problèmes rencontrés lors de la création de conteneurs de projets situés dans le répertoire utilisateur de Windows ont été une surprise.
Divers types d'erreurs liées à l'exécution de scripts bash (qui commencent généralement lorsque les conteneurs sont créés pour installer les bibliothèques et les distributions nécessaires) et d'autres choses courantes pour le développement sous Linux, m'ont fait penser à placer des projets directement dans le répertoire utilisateur Ubuntu 18.04.
.
À partir de la solution du problème précédent, voici ce qui suit : comment travailler avec des fichiers de projet via un IDE installé sur Windows. En tant que "meilleure pratique", je n'ai trouvé qu'une seule option pour moi - travailler via VSCode (bien que je sois fan de PhpStorm).
Après avoir installé l'extension ci-dessus, exécutez simplement la commande code . dans le répertoire du projet lorsque VSCode est en cours d'exécution.
Dans cet exemple, nginx est requis pour accéder aux conteneurs via un navigateur. Installez-le via sudo apt-get install nginx il s'est avéré pas si facile. La première étape consistait à mettre à jour la distribution WSL en exécutant sudo apt update && sudo apt dist-upgrade, et seulement après cela, exécutez l'installation de nginx.
Important! Tous les domaines locaux ne sont pas écrits dans le fichier /etc/hosts de la distribution Linux (il n'y est même pas), mais dans le fichier hosts de Windows 32 (généralement situé dans C:WindowsSystem10driversetchosts).
sources
Une description plus détaillée de chaque étape peut être trouvée ici :