Le Windows Subsystem for Linux 2 est un outil phénoménal sur Windows 10 et 11, et s’intègre à Docker de manière transparente. En tant que développeurs, il est essentiel de comprendre ce que ces logiciels offrent et comment vous pouvez tirer le meilleur parti de votre configuration Docker-WSL 2.


Qu’est-ce que Docker ?

Docker est une plateforme open-source qui permet aux développeurs de construire, déployer et exécuter efficacement leurs applications dans un conteneur. Toutes les dépendances sont regroupées afin que votre projet puisse être facilement déployé dans n’importe quel environnement.

Docker est très populaire parmi les plateformes de conteneurisation car il est fiable, fonctionnel et hautement évolutif. Il fonctionne sur le moteur Docker, un outil DevOps essentiel qui fournit un environnement propre et léger pour les tests et le déploiement. Docker est similaire à une machine virtuelle, mais virtualise le système d’exploitation plutôt que le matériel sous-jacent.

Architecture de microservices

Pour les développeurs de logiciels, Docker rationalise le flux de travail en créant des conteneurs individuels pour différents microservices qui incluent les dépendances, les bibliothèques et les configurations nécessaires. Chaque conteneur de microservice est isolé et évolutif.

Comment utiliser Docker sur WSL 2

Docker est compatible avec tous les principaux systèmes d’exploitation, tels que Windows, macOS et Linux. Si vous êtes sous Windows 10 ou 11, vous pouvez utiliser Docker via Docker Desktop et l’intégrer au Windows Subsystem for Linux 2 pour améliorer les performances. Vous pouvez télécharger Docker Desktop pour Windows depuis le site officiel de Docker.

image nouvellement construite sur docker

Le sous-système Windows pour Linux (WSL) est une fonctionnalité précieuse qui permet aux utilisateurs de Windows d’exécuter des distributions Linux telles qu’Ubuntu et Kali sans avoir à configurer une machine virtuelle ou à effectuer un double démarrage.

Cela signifie également que les utilisateurs de Windows peuvent utiliser directement les outils de ligne de commande, les applications et les utilitaires Linux sans étapes d’installation supplémentaires. La version la plus récente de WSL, WSL 2, offre une plus grande stabilité et un noyau Linux dédié.

Les conteneurs Docker étant robustes, vous pouvez même les configurer pour héberger votre serveur ; les conteneurs Docker nginx sont couramment utilisés comme serveurs web. En outre, vous pouvez utiliser Docker de plusieurs autres manières :

  • Exécuter facilement des distros Linux
  • Mettre en place un serveur web à des fins d’apprentissage ou de test
  • Déployer des applications portables
  • Regrouper l’application dans un seul fichier image
  • Pipeline CI/CD simplifié

Vous devez vous familiariser avec les meilleures pratiques d’utilisation de Docker avec Windows Subsystem for Linux 2, comme vous le feriez avec n’importe quelle autre plateforme ou outil. En tant que développeur, je peux affirmer, sur la base de mon expérience personnelle, que vous deviendrez beaucoup plus productif et efficace une fois que vous aurez intégré les conseils suivants dans votre flux de travail.

1. Intégrer VS Code à WSL 2

Visual Studio Code est un IDE populaire, apprécié pour ses incroyables fonctionnalités, sa communauté et ses extensions. En tant que développeur, la possibilité d’utiliser Visual Studio Code pour le développement d’applications sur une plateforme Windows tout en exécutant ces applications sur un noyau Linux est une fonctionnalité incroyablement avantageuse et presque incroyable.

Extension wsl dans VS Code

Lorsque vous intégrez VS Code dans le sous-système Windows pour Linux, vous pouvez tirer parti de son noyau Linux spécialisé pour améliorer la compatibilité entre les plates-formes. Vous pouvez également rationaliser votre flux de travail en utilisant le terminal intégré dans VS Code avec WSL 2.

Pour configurer VS Code avec WSL 2 sur Windows, vous pouvez configurer l’option WSL Le logiciel d’extension WSL est disponible sur le VS Code Marketplace et vous permet de commencer à travailler.

2. Utiliser le système de fichiers WSL 2

Pour faire fonctionner correctement vos conteneurs Docker, il est essentiel que vous vous appuyiez sur le système de fichiers de votre distro WSL 2 et que vous ne dépendiez pas fortement du système de fichiers natif de Windows. Tout au long de mon expérience de travail avec des conteneurs Docker sur WSL 2, j’ai découvert qu’il était préférable de stocker les fichiers de votre projet dans WSL.

3. Utiliser des scripts Linux natifs

De nombreux projets conteneurisés sur lesquels vous travaillerez seront probablement accompagnés de scripts pour l’automatisation sous Linux. Généralement, ces scripts sont d’abord développés pour Linux, et les développeurs Windows ne sont pas une priorité.

Avec WSL 2, toute votre équipe peut utiliser les mêmes scripts d’automatisation Linux et vous n’avez pas à vous soucier de maintenir des scripts d’automatisation compatibles avec Windows pour votre équipe.

4. Configurer BuildKit pour améliorer la sécurité et les performances

BuildKit est une boîte à outils open-source qui améliore le processus de construction traditionnel de Docker en termes de performance et de sécurité ; elle est directement intégrée à Docker, vous n’avez donc pas besoin de l’installer séparément.

Lorsque vous activez l’option BuildKit Par défaut, vous vous assurez que vos conteneurs sont construits avec la boîte à outils BuildKit, ce qui vous permet de bénéficier d’une meilleure sécurité, d’une meilleure concurrence, d’une plus grande flexibilité et d’une meilleure mise en cache.

Pour activer BuildKit par défaut, vous devez apporter les modifications suivantes au fichier de configuration ~/.profile :

 export DOCKER_BUILDKIT=1. 

5. Définir les limites de ressources

Lorsque vous intégrez le backend WSL 2 à Docker Desktop, vous donnez à Docker l’accès à toutes vos ressources CPU. Cela permet d’améliorer les performances des conteneurs gourmands en ressources.

Cependant, dans certains cas, un conteneur peut allouer beaucoup de mémoire excédentaire, ce qui entraîne le blocage de processus OS critiques. Il est plus probable que cela se produise lors de l’utilisation de conteneurs de base de données ou d’un microservice de mise en cache.

Heureusement, vous pouvez configurer les conteneurs Docker pour limiter l’utilisation de la mémoire système et du processeur. Vous devez toujours être prudent lorsque vous configurez la mémoire du système, même une erreur mineure peut avoir des conséquences importantes. Vous pouvez vous référer à la documentation officielle de Docker pour un guide plus détaillé sur la limitation de la mémoire et des ressources CPU consommées par un conteneur Docker.

6. Récupérer la mémoire en cache

Si vous exécutez un conteneur Docker dans le WSL 2, sa mémoire devrait être libérée une fois le conteneur terminé. Malheureusement, le noyau du système d’exploitation a tendance à conserver les données dans le cache, ce qui signifie que la mémoire effective récupérée par le WSL 2 ne sera pas suffisante.

Vous pouvez récupérer toute la mémoire qui est inutilement utilisée comme cache en exécutant la commande suivante via root dans le WSL 2 :

 echo 1 > /proc/sys/vm/drop_caches 

Devenez plus intelligent avec le WSL 2

Le WSL 2 est la meilleure fonctionnalité pour les développeurs basés sur Windows, changeant complètement la façon dont les développeurs utilisent Docker. Les développeurs doivent comprendre les meilleures pratiques pour utiliser Docker avec WSL afin d’améliorer les performances, la sécurité et la flexibilité du flux de travail.