Voici comment obtenir la meilleure expérience Docker sous Windows.

Le sous-système Windows pour Linux 2 est un outil phénoménal sur Windows 10 et 11, et s'intègre parfaitement à Docker. 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 plate-forme open source qui permet aux développeurs de créer, 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 de nombreuses 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.

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, bibliothèques et configurations nécessaires. Chaque conteneur de microservice est isolé et évolutif individuellement.

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 utilisez Windows 10 ou 11, vous pouvez utiliser Docker via Docker Desktop et intégrez-le au sous-système Windows pour Linux 2 pour des performances améliorées. Vous pouvez télécharger Docker Desktop pour Windows à partir du site officiel 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 configurer de machine virtuelle ni de double démarrage.

Cela signifie également que Les utilisateurs Windows peuvent utiliser directement les outils de ligne de commande Linux, applications et utilitaires 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. De plus, vous pouvez utiliser Docker de plusieurs autres manières :

  • Exécutez facilement des distributions Linux
  • Configurer un serveur Web à des fins d'apprentissage ou de test
  • Applications de déploiement portables
  • Regroupez l'application dans un seul fichier image
  • Pipeline CI/CD simplifié

Vous devez vous familiariser avec les meilleures pratiques d'utilisation de Docker avec le sous-système Windows pour Linux 2, comme vous le feriez avec n'importe quelle autre plate-forme ou outil. En tant que développeur, je peux dire par expérience personnelle que vous deviendrez beaucoup plus productif et efficace une fois que vous intégrerez les conseils suivants dans votre flux de travail.

1. Intégrer VS Code avec WSL 2

Visual Studio Code est un IDE populaire qui est apprécié en raison de ses fonctionnalités incroyables, de sa communauté et de ses extensions. En tant que développeur, la possibilité d'utiliser Visual Studio Code pour le développement d'applications sur une plate-forme Windows tout en exécuter également ces applications sur un noyau Linux est incroyablement avantageux et presque incroyable fonctionnalité.

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é multiplateforme. Vous pouvez rationaliser davantage votre flux de travail en utilisant le terminal intégré dans VS Code avec WSL 2.

Pour configurer VS Code avec WSL 2 sous Windows, vous pouvez configurer le WSL extension du VS Code Marketplace et faire avancer les choses.

2. Utiliser le système de fichiers WSL 2

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

3. Utiliser des scripts Linux natifs

De nombreux projets conteneurisés sur lesquels vous travaillerez seront probablement accompagnés de scripts d'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 la maintenance 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 Docker traditionnel en termes de performances et de sécurité; il est directement intégré à Docker, vous n'avez donc pas besoin de l'installer séparément.

Lorsque vous activez le BuildKit par défaut, vous vous assurez que vos conteneurs sont créés avec la boîte à outils BuildKit, ce qui vous offre une meilleure sécurité, simultanéité, flexibilité et mise en cache.

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

exporter DOCKER_BUILDKIT=1.

5. Configurer des 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, provoquant le blocage de processus critiques du système d'exploitation. Vous êtes plus susceptible de rencontrer ce problème lorsque vous utilisez des conteneurs de base de données ou un microservice de mise en cache.

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

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

Si vous exécutez un conteneur Docker dans WSL 2, sa mémoire doit ê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; cela 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 inutilement utilisée comme cache en exécutant la commande suivante via root dans WSL 2 :

écho 1 > /proc/sys/vm/drop_caches

Soyez plus intelligent avec WSL 2

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