Utilisation de WSL 2 et Docker pour exécuter des containers Linux sur Windows

Utilisation de WSL 2 et Docker pour exécuter des containers Linux sur Windows

I. Présentation

Pour utiliser les containers sous Windows, il est possible d’utiliser le client Docker Desktop. Dans ces containers, on peut faire tourner des applications Windows. Néanmoins, il ne permet pas d’exécuter des containers Linux directement sur Windows, à cause des dépendances et de l’absence du noyau Linux. Lorsque l’on est sur Linux, on peut exécuter des applications Linux au sein de containers.

Sous Windows, grâce à Docker Desktop et la fonctionnalité Windows Subsystem for Linux, nous allons pouvoir contourner cette limitation. Depuis Windows, nous allons pouvoir exécuter des containers Linux grâce à une distribution Linux qui tourne avec WSL 2.

En effet, avec WSL 2, Microsoft a introduit un changement significatif dans l’architecture de la fonctionnalité WSL. En version 2, WSL intègre un noyau Linux complet, ce qui va nous permettre d’exécuter des containers Linux en mode natif.

Dans ce tutoriel, nous allons voir comment installer et configurer Docker pour WSL 2 dans le but d’exécuter des containers Linux à partir d’une machine Windows 10. Cet article est un épisode de ma série dédiée à WSL.

II. Prérequis

Avant de commencer, nous partons du principe que vous avez déjà :

  • Une machine Windows avec la fonctionnalité WSL 2 installée
  • Une distribution Linux opérationnelle, via WSL (Ubuntu, Kali Linux, etc.)

Dès que c’est bon, vous pouvez passer à la suite.

III. Installer Docker Desktop pour WSL 2

Commencez par télécharger « Docker Desktop » (environ 500 Mo) sur le site officiel de Docker :

Démarrez l’installation, elle est très simple. Il faut veiller à bien cocher « Install required Windows components for WSL 2 » lors de l’installation.

 » alt= »Docker WSL 2″ width= »710″ height= »491″ data-lazy-srcset= »https://tuto.cm/wp-content/uploads/2024/09/1726262369_346_Utilisation-de-WSL-2-et-Docker-pour-executer-des-containers.png 710w, https://www.it-connect.fr/wp-content-itc/uploads/2021/06/wsl-docker-desktop-01-550×380.png 550w, https://www.it-connect.fr/wp-content-itc/uploads/2021/06/wsl-docker-desktop-01-150×104.png 150w, https://www.it-connect.fr/wp-content-itc/uploads/2021/06/wsl-docker-desktop-01-160×111.png 160w, https://www.it-connect.fr/wp-content-itc/uploads/2021/06/wsl-docker-desktop-01-50×35.png 50w, https://www.it-connect.fr/wp-content-itc/uploads/2021/06/wsl-docker-desktop-01-392×272.png 392w, https://www.it-connect.fr/wp-content-itc/uploads/2021/06/wsl-docker-desktop-01-130×90.png 130w » data-lazy-sizes= »(max-width: 710px) 100vw, 710px » data-lazy-src= »https://tuto.cm/wp-content/uploads/2024/09/1726262369_346_Utilisation-de-WSL-2-et-Docker-pour-executer-des-containers.png » />

Lancez l’installation, et patientez… Coffee break.

Lorsque l’installation est terminée, vous devez redémarrer votre machine. Cliquez sur « Close and restart » pour procéder au redémarrage.

IV. Configurer Docker Desktop pour WSL 2

Notre machine est équipée de WSL 2 et de Docker Desktop : c’est une bonne nouvelle. Je vous propose d’ouvrir une console PowerShell et d’exécuter la commande ci-dessous pour lister les distributions Linux enregistrées dans WSL :

wsl -l -v

On remarque que mes distributions « Kali-linux » et « Ubuntu » sont bien là. Docker quant à lui a ajouté deux distributions, ou plutôt deux composants. Voyez par vous-même :

Les entrées « docker-desktop » et « docker-desktop-data » servent respectivement à gérer les containers Docker que l’on va exécuter et à assurer le stockage dans un disque virtuel.

Maintenant, ouvrez Docker Desktop s’il n’est pas déjà ouvert. Cliquez sur l’icône paramètres en haut à droite. Dans l’onglet « General« , je vous invite à cocher l’option « Use the WSL 2 based engine » si elle n’est pas déjà cochée.

Ensuite, cliquez sur l’onglet « Resources » puis sur « WSL Integration« . C’est ici qu’il faut sélectionner les distributions pour lesquelles vous souhaitez activer la prise en charge de Docker.

Par défaut, l’option « Enable integration with my default WSL distro » est cochée. Cela signifie que votre distribution Linux par défaut bénéficie déjà de Docker. Pour savoir quelle est votre distribution Linux par défaut, utilisez la commande « wsl -l » : ce sera précisé « (par défaut) » au niveau de la distribution par défaut actuelle.

Dès que votre choix est fait, vous pouvez continuer. Tout en sachant qu’il sera possible d’y revenir à tout moment, vous connaissez le chemin maintenant.

V. Exécuter son premier container Docker sur WSL 2

Ce que je vous propose, c’est d’ouvrir une distribution pour laquelle vous avez activé Docker. Pour ma part, je vais accéder à la distribution Kali-Linux en mode console :

wsl -d Kali-linux

Une fois dans la console Linux, je vous invite à exécuter le container Docker « Hello World ». Très basique, il va permettre de valider que Docker fonctionne bien sur notre machine Linux.

Voici la commande à exécuter :

docker run hello-world

L’image « hello-world » ne sera pas trouvée sur la machine, donc le container sera téléchargé depuis la librairie officielle. Une fois que ce sera fait, vous devriez obtenir deux lignes qui permettent de confirmer que tout est OK :

Hello from Docker!
This message shows that your installation appears to be working correctly.

En image, cela nous donne :

Si l’on regarde le message ci-dessus, on peut voir que nous sommes invités à exécuter un autre container. Ce container va permettre d’exécuter une imagine Ubuntu avec un shell (bash) en mode interactif. Je vous invite à tester :

docker run -it ubuntu bash

Suite à l’exécution de cette commande, on se retrouve avec un shell Linux entre les mains. Ce container est un environnement isolé de Windows et de notre distribution Linux gérée par WSL (bien qu’il en dépende). Si l’on regarde le nom de l’hôte, on peut voir qu’il a été généré aléatoirement.

En parallèle, ouvrez une seconde console au sein de votre distribution Linux et exécutez la commande ci-dessous pour lister les containers Docker actifs :

docker ps

Le container Docker basé sur l’image Ubuntu est bien en cours d’exécution.

VI. Un serveur Web avec Docker et WSL 2

Pour finir, nous allons exécuter un serveur Web Lighttpd en utilisant l’image « sebp/lighttpd« . D’après la documentation, voici comment s’exécute cette image :

sudo docker run --rm -t -v :/var/www/localhost/htdocs -p :80 sebp/lighttpd

Pour le « home-directory« , c’est-à-dire la racine du site Web, nous allons choisir la racine du dossier personnel de l’utilisateur « florian », ce dernier étant l’utilisateur de ma distribution Kali Linux. Ce qui donne : /home/florian.

Nous devons aussi choisir un port d’écoute. Au sein du serveur Lighttpd, le port 80 sera utilisé, mais nous devons le mapper vers un autre port au niveau de notre distribution Linux (WSL). Par exemple, le port 8080.

Avant d’exécuter le container Docker, on va créer la page d’index de notre site :

nano /home/florian/index.html

Avec le contenu suivant :

Hello from IT-Connect 🙂

 


Maintenant, on va démarrer notre serveur Web :

sudo docker run --rm -t -v /home/florian:/var/www/localhost/htdocs -p 8080:80 sebp/lighttpd

L’image va être téléchargée et le container lancé… Pour s’y connecter, il suffit de prendre un navigateur et d’indiquer l’adresse suivante :

http://localhost:8080

ou

http://:8080

Nous arrivons bien à atteindre notre serveur Web puisque notre page index.html s’affiche ! Bravo ! 😉

Cela n’était qu’un exemple : maintenant à vous de jouer pour exécuter les containers Docker de vos rêves 😉.

Hébergez votre site à partir de 2$ sur 👉👉👉

À propos Santana

Analyste en cybersécurité avec 5 ans d'expérience dans la protection des systèmes d'information contre les menaces et les attaques. Expertise dans la surveillance des réseaux, l'analyse des vulnérabilités, et la gestion des incidents de sécurité. Passionnée par l'innovation technologique et la mise en œuvre de solutions de sécurité robustes pour protéger les données sensibles et assurer la conformité réglementaire.

Vérifiez également

WSL : personnaliser le démarrage de Linux avec /etc/wsl.conf

WSL : personnaliser le démarrage de Linux avec /etc/wsl.conf

Table de Matieres1 I. Présentation2 II. Création du fichier /etc/wsl.conf3 III. WSL (user) : modifier …

WSL : comment accéder aux fichiers Linux depuis Windows 10 ?

WSL : comment accéder aux fichiers Linux depuis Windows 10 ?

Table de Matieres1 I. Présentation2 II. Le partage spécial \\wsl$3 III. Découverte de la commande …

10 commandes pour maîtriser WSL sous Windows 10

10 commandes pour maîtriser WSL sous Windows 10

Table de Matieres1 I. Présentation2 III. WSL : modifier la version d’une distribution Linux3 IV. …

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.