Installation et utilisation de WSL2 / Docker sur Windows
Installation des prérequis de WSL
Pour démarrer, il est nécessaire d’installer les prérequis suivants conseillés par Docker : https://docs.docker.com/desktop/windows/wsl/#prerequisites.
Nous utiliserons une image Ubuntu installable depuis le store Microsoft :
Une fois installé, nous allons mettre à jour notre WSL via l’invite de commande Powershell Windows :
wsl --updateOn retourne dans l’interface Docker pour activer l’intégration Docker dans notre WSL :
Mise en place de notre utilisateur
Notre WSL est maintenant créé et nous pouvons y accéder depuis le programme du même nom que notre machine virtuelle “Ubuntu”. Il nous faut maintenant créer un utilisateur, de préférence avec le même nom que notre utilisateur Windows.
sudo adduser adsy --force-badnameOn ajoute ensuite notre utilisateur aux sudoers :
usermod -aG sudo adsyPour faciliter l’utilisation de WSL, on définit notre utilisateur par défaut avec l’utilisateur que l’on vient de créer :
ubuntu config --default-user adsyAfin de faciliter également l’utilisation de ssh depuis notre WSL, on copie le dossier .ssh présent à la racine de notre utilisateur Windows vers la racine de notre utilisateur WSL.
chmod 700 .ssh/
cd .ssh/ => chmod 600 *Il est intéressant de vérifier après un reboot du WSL que tout est maintenant fonctionnel vis à vis de votre utilisateur et de Docker depuis WSL. Il vous est désormais possible de récupérer vos projets git distant depuis la home de votre utilisateur WSL et de construire leurs images Docker.
Installation et configuration d’Apache
Nous allons maintenant installer et configurer Apache au sein de notre WSL. Commençons par installer les packages requis :
sudo apt update
sudo apt install apache2
sudo apt install net-tools
sudo apt install w3m
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer
sudo a2enmod lbmethod_byrequests
Apache est désormais installé et lancé, il est possible de vérifier son statut via la commande suivante :
apache2ctl statusVia la commande ifconfig, installée par le package net-tools, on peut récupérer l’IP sortant de notre WSL et y accéder depuis notre Windows.
Pour ne pas avoir à redémarrer Apache à chaque démarrage de votre WSL, il est possible de configurer des tâches à exécuter au démarrage via un fichier wsl.conf à créer au chemin /etc.
Pour plusieurs tâches, il suffit de les séparer par un “;”.
Figeage de l’IP de notre WSL et création de notre premier vhost
A chaque reboot du WSL, l’ip est renouvelée, ce qui pose problème dans l’idée de créer une stabilité dans l’utilisation de WSL. A l’aide du tutoriel décrit ici, nous allons créer un commutateur virtuel Hyper-V.
Lors du choix du réseau externe, on peut tâtonner en modifiant le réseau externe et en lançant la commande : « netsh interface ip show addresses "vEthernet (WSL_external)" » en même temps, jusqu’à obtenir le résultat indiqué par le tutoriel.
On a alors une IP statique pour notre WSL, ici 10.1.10.245 :
On crée ensuite un vhost pour le Apache de notre WSL, en créant un fichier wsl-vhost.conf au chemin /etc/apache2/sites-available/ :
On utilise ProxyPass pour faire pointer notre url sur le port sortant de notre Docker.
On active ensuite notre fichier vhost et on relance Apache.
sudo a2ensite wsl-vhost
sudo apache2ctl configtest
sudo apache2ctl gracefulUne fois nos dockers lancés, apache lancé, on peut désormais modifier le fichier hosts Windows pour faire pointer notre url sur notre WSL.
Notre projet lancé et déployé dans notre WSL est désormais accessible depuis notre Windows.