Aller au contenu

1. Concepts

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

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.

  1. La CLI wslc.exe — pour construire, lancer et inspecter des conteneurs depuis un terminal. Elle reprend les habitudes de la CLI Docker.
  2. 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).
  • 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.
  1. Liste les distributions WSL présentes sur ta machine. Lesquelles appartiennent à un outil de conteneurs ?
Solution
Fenêtre de terminal
wsl -l -v

Sur 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.

  1. Pourquoi ne peut-on pas faire tourner une image ubuntu directement 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.