Développement Docker sur le sous-système Windows pour Linux (WSL)




Pour travailler pleinement avec le projet sur docker dans WSL, vous devez installer WSL 2. Au moment de la rédaction, vous ne pouvez l'utiliser 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 qu'une version de Windows 10 Pro est requise pour installer et configurer Docker Desktop.


Important! WSL 2 n'a plus besoin de Docker Desktop pour Windows 10. Comment s'en passer est décrit dans la section Docker Pro dans Ubuntu .



Premiers pas


Après avoir accédé au programme d'évaluation préliminaire et installé les mises à jour, vous devez installer la distribution Linux (dans cet exemple, Ubuntu 18.04 est utilisé) et Docker Desktop avec WSL 2 Tech Preview:


  1. Présentation technique de Docker Desktop WSL 2
  2. Ubuntu 18.04 dans le Windows Store

Dans les deux paragraphes, nous suivons toutes les instructions d'installation et de configuration.


Installation de la distribution Ubuntu 18.04


Avant de démarrer Ubuntu 18.04, vous devez activer Windows WSL et la plate-forme de machine virtuelle Windows en exécutant deux commandes dans PowerShell:


  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (nécessite le redémarrage de l'ordinateur)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Après vous devez vous assurer que nous utiliserons WSL v2. Pour ce faire, dans le terminal WSL ou PowerShell, exécutez les commandes suivantes de manière séquentielle:


  • wsl -l -v - voir quelle version est actuellement installée. Si 1, déplacez-vous plus bas dans la liste
  • wsl --set-version ubuntu 18.04 2 - pour passer à la version 2
  • wsl -s ubuntu 18.04 - installe Ubuntu 18.04 comme distribution par défaut

Vous pouvez maintenant démarrer Ubuntu 18.04, configurer (spécifier un nom d'utilisateur et un mot de passe).


Installer Docker Desktop


Important! WSL 2 n'a plus besoin de Docker Desktop pour Windows 10. Comment s'en passer est décrit dans la section Docker Pro dans Ubuntu .


Pendant l'installation, suivez les instructions. L'ordinateur nécessitera un redémarrage après l'installation et au premier démarrage pour activer Hyper-V (à cause de cette prise en charge, une version de Windows 10 Pro est requise).


Important! Si Docker Desktop signale un blocage par le 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 -> Protection -> 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 démarré Docker Desktop, dans son menu contextuel, sélectionnez l'élément WSL 2 Tech Preview.




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. Il inclut la prise en charge de WSL.




Important! En plus de la case à cocher d'activation WSL, vous devez également activer votre distribution WSL dans l'onglet Ressources-> Intégration WSL.




Lancement


Les imprévus étaient les nombreux problèmes survenus lors de la tentative de création des conteneurs de projets situés dans le répertoire utilisateur Windows.


Des erreurs de divers types liées à l'exécution de scripts bash (qui commencent généralement lors de la construction de conteneurs pour l'installation des bibliothèques et des distributions nécessaires) et d'autres choses courantes pour le développement Linux nous ont fait penser à placer des projets directement dans le répertoire utilisateur Ubuntu 18.04.

.

De la solution au problème précédent, ce qui suit: comment travailler avec des fichiers de projet via l'IDE installé sur Windows. En tant que «meilleure pratique», je n'ai trouvé qu'une seule option pour moi - travailler via VSCode (même si je suis un fan de PhpStorm).


Après avoir téléchargé et installé VSCode, nous l'installons dans le pack d'extension de développement à distance .


Après avoir installé l'extension ci-dessus, exécutez simplement la commande de code . dans le répertoire du projet avec VSCode en cours d'exécution.


Dans cet exemple, nginx est requis pour accéder aux conteneurs via un navigateur. L'installation via sudo apt-get install nginx n'était pas si simple. Pour commencer, il était nécessaire de mettre à jour la distribution WSL en faisant la mise à jour sudo apt update && sudo apt dist-upgrade , et ensuite seulement de lancer l'installation de nginx.


Important! Tous les domaines locaux ne sont pas enregistrés dans le fichier / etc / hosts de la distribution Linux (il n'y est même pas), mais dans le fichier hosts (généralement situé C: \ Windows \ System32 \ drivers \ etc \ hosts) dans Windows 10.


À propos de Docker dans Ubuntu


Comme demandé par les utilisateurs avertis dans les commentaires de la note, le docker à l'intérieur de la distribution WSL 2 est absolument fonctionnel. Cela vous permet de ne pas installer Docker Desktop sur Windows 10 et résout le problème d'avoir une version de Windows 10 Pro (le besoin de Pro se pose précisément en relation avec l'utilisation de Docker Desktop). Il est installé selon les instructions du site d'accueil:



Si le docker commence à jurer sur le démon lors de l'exécution de la commande, vérifiez l'état du service - dans mon cas, comme nginx, il ne démarre pas automatiquement. Exécutez-le avec la commande sudo service docker start .


Si, au moment de l'assemblage, l'erreur "Le service n'a pas pu être généré: cgroups: impossible de trouver la destination de montage de cgroup: inconnu" tombe, essayez la solution suivante (pas la mienne, j'ai trouvé le lien dans les sources): sudo mkdir /sys/fs/cgroup/systemd ; sudo mount -t cgroup -o none,name=systemd cgroup /sys/fs/cgroup/systemd .


Travailler avec le projet via PhpStorm


Pour fournir la possibilité de travailler avec un projet en WSL via PhpStorm, vous devez procéder comme suit:


  • Exécutez l'invite de commande Windows 10 en tant qu'administrateur;
  • À l'invite de commandes de Windows 10, exécutez la commande mklink /DC:\project_directory \\wsl$\Ubuntu\home\user\project_directory , qui créera un lien symbolique vers le dossier du projet.

Après cela, dans l'EDI, vous pouvez ouvrir le projet le long du chemin C: \ project_directory


PS Dmitry Simagin , merci pour la décision.


Les sources


Une description plus détaillée de chaque étape peut être trouvée ici:


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


All Articles