La mise à jour de Windows 10 en version 2004 est en cours de déploiement. Si vous êtes développeur, elle devrait vous intéresser car elle permet d’utiliser WSL2. Cette nouvelle version offre de nouvelles perspectives, notamment pour Docker.

WSL2

WSL est le sous-système Windows pour Linux. Cette fonctionnalité permet de faire tourner une distribution Linux sous Windows sans passer par une VM.

Outre les habituelles améliorations de performance, cette nouvelle version intègre un noyau Linux pour Windows.

Installation

Le premier pré-requis est d’avoir Windows 10 en version 2004 minimum1.

Si vous n’aviez pas encore installé WSL, il est nécessaire de lancer le programme Activer ou désactiver des fonctionnalités Windows et d’activer les 2 suivantes :

  • Sous-système Windows pour Linux
  • Plateforme d’ordinateur virtuel2

Il est nécessaire de télécharger et d’installer la mise à jour du noyau Linux WSL2 qui se trouve ici.

Configuration

Lancez un PowerShell et activer WSL2 ainsi :

PS C:\Users\sebastien> wsl --set-default-version 2
Pour plus d’informations sur les différences de clés avec WSL 2, visitez https://aka.ms/wsl2

Si vous utilisiez déjà WSL1, il est nécessaire de migrer votre Linux sur WSL2 avec cette commande3 :

PS C:\Users\sebastien> wsl --list --verbose
NAME STATE VERSION

- Ubuntu Stopped 1

PS C:\Users\sebastien> wsl --set-version Ubuntu 2
La conversion est en cours. Cette opération peut prendre quelques minutes...
Pour plus d’informations sur les différences de clés avec WSL 2, visitez https://aka.ms/wsl2
La conversion est terminée.

PS C:\Users\sebastien> wsl --list --verbose
NAME STATE VERSION

- Ubuntu Stopped 2

WSL est maintenant installé et actif sur votre Windows.

Docker Desktop

Maintenant que nous avons WSL2, nous allons vouloir bénéficier de la possibilité d’exécuter des containers Docker Linux sur Windows sans passer par une VM.

Installation

Pour cela, il est nécessaire d’installer Docker Desktop for Windows4

Une fois installé, Docker Desktop va vous déconnecter de votre session Windows puis se relancer lorsque vous vous reconnecterez.

Configuration

Ouvrez l’application Docker Desktop, allez dans Settings puis dans General.

Si l’option Use the WSL 2 based engine (Windows Home can only run the WSL 2 backend) est grisée, ne paniquez pas.5.

Allez dans Resources > WSL INTEGRATION et sélectionnez les distributions Linux installées sur votre système qui doivent être accessibles pour Docker Desktop.

Ouvrez une session WSL sur votre distribution Linux et commencez à jouer avec Docker6 :

/mnt/c/Users/sebastien$ docker run hello-world

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

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

Conclusion

Il aura fallu plus d’un an entre l’annonce de WSL2 et le déploiement de cette mise à jour sur Windows Home.

Même s’il est parfois plus sûr d’utiliser une VM pour être au plus proche de la configuration de production, il faut avouer que Docker Desktop améliore l’expérience du développeur pour un usage quotidien.

Et vous ? Avez-vous reçu cette mise à jour ? 🐋

  1. A noter qu’il semble que Microsoft a récemment retroporté WSL2 sur les versions 1903 et 1909 de Windows 10.
  2. Cette fonctionnalité peut être activée avec la commande PowerShell suivante : Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
  3. Si vous rencontrez des erreurs lors de la migration de votre distribution Linux, je vous invite à consulter l’aide à la résolution de problème sur WSL2.
  4. En suivant la procédure Docker Desktop WSL 2 backend.
  5. Sur ma machine, l’option était cochée et grisée.
  6. N’hésitez à pas consulter les bonnes pratiques sur Docker Desktop avec WSL2