1. Concepts
Un conteneur, en une phrase
Section intitulée « Un conteneur, en une phrase »Un conteneur emballe une application avec tout ce dont elle a besoin (bibliothèques, runtime, configuration) pour qu’elle s’exécute de la même façon partout. On le lance à partir d’une image, un modèle en lecture seule que l’on télécharge depuis un registre (Docker Hub, par exemple) ou que l’on construit soi-même.
| Terme | Analogie | Exemple |
|---|---|---|
| Image | Une recette figée | nginx, ubuntu:latest |
| Conteneur | Un plat préparé à partir de la recette | le serveur web lancé depuis nginx |
| Registre | La bibliothèque de recettes | docker.io |
| Port publié | Le guichet entre Windows et le conteneur | -p 8080:80 |
Pourquoi il faut Linux
Section intitulée « Pourquoi il faut Linux »Les conteneurs Linux partagent le noyau Linux de la machine hôte. Windows n’en a pas : il faut donc une machine virtuelle Linux quelque part. C’est exactement ce que fournit WSL 2 : une VM légère, gérée par Windows, avec un vrai noyau Linux.
Trois façons d’avoir des conteneurs Linux sur Windows
Section intitulée « Trois façons d’avoir des conteneurs Linux sur Windows »| Approche | Qui gère la VM Linux | Outil |
|---|---|---|
| Docker Desktop | Docker, via sa propre distro WSL docker-desktop |
docker |
| Podman | Podman, via sa distro WSL podman-machine-default |
podman |
| WSL containers | WSL lui-même, sans produit tiers | wslc |
La nouveauté : avec WSL containers, le moteur de conteneurs fait partie de WSL. Il n’y a rien d’autre à installer, et wslc.exe est livré avec WSL.
Les deux composants
Section intitulée « Les deux composants »- La CLI
wslc.exe— pour construire, lancer et inspecter des conteneurs depuis un terminal. Elle reprend les habitudes de la CLI Docker. - L’API WSL container — un paquet NuGet (
Microsoft.WSL.Containers) qui permet à une application Windows d’utiliser des conteneurs Linux dans sa propre logique (C#, et C++/WinRT en préversion).
À retenir
Section intitulée « À retenir »- Image = modèle ; conteneur = instance en cours d’exécution.
- Les conteneurs Linux ont besoin d’un noyau Linux → WSL 2 le fournit.
wslc= conteneurs intégrés à WSL, sans Docker Desktop.
Exercices
Section intitulée « Exercices »- Liste les distributions WSL présentes sur ta machine. Lesquelles appartiennent à un outil de conteneurs ?
Solution
wsl -l -vSur ma machine : docker-desktop (Docker Desktop) et podman-machine-default (Podman). Ce sont des distros « techniques » gérées par ces outils, pas des distros à utiliser directement.
- Pourquoi ne peut-on pas faire tourner une image
ubuntudirectement sur le noyau Windows ?
Solution
Une image Linux contient des binaires qui font des appels système Linux. Un conteneur ne virtualise pas le noyau : il partage celui de l’hôte. Il faut donc un noyau Linux, fourni ici par la VM de WSL 2.