Installation sur Windows
winget install Docker.DockerDesktop installe Docker Desktop, qui embarque le moteur, le client, Compose et l'interface graphique. Le moteur s'exécute dans une distribution Linux gérée par WSL2 : c'est le mode recommandé, bien plus performant et léger que l'ancien backend Hyper-V. Activez WSL2 avant l'installation avec wsl --install (PowerShell en administrateur), puis redémarrez.
Après l'installation, lancez l'application Docker Desktop au moins une fois : tant qu'elle n'est pas démarrée, docker ps échoue avec une erreur de connexion au démon.
docker --version ne prouve que la présence du client : la commande répond même quand le moteur est arrêté. Or, sur Docker Desktop, le moteur ne tourne que lorsque l'application est lancée — c'est précisément là qu'il peut être à l'arrêt. Pour vérifier que le moteur répond réellement, exécutez docker run --rm hello-world : cette commande télécharge une petite image, démarre un conteneur et confirme que la chaîne client → pipe → moteur fonctionne de bout en bout.
WSL2 et intégration
Docker Desktop propose d'intégrer le moteur à vos distributions WSL2 (paramètre « WSL Integration ») : une fois activée pour une distribution, la commande docker y est disponible directement, et les conteneurs accèdent au système de fichiers Linux de WSL avec de bien meilleures performances que via les chemins Windows montés. Privilégiez le stockage de vos projets dans le système de fichiers WSL (\\wsl$\…) plutôt que sous C:\Users\… pour éviter la lenteur des accès inter-systèmes.
Pièges fréquents
Côté Windows, il n'y a pas de service systemd ni de socket /var/run/docker.sock natif : le client communique avec le démon via un canal nommé (npipe:////./pipe/docker_engine). La configuration du client se trouve dans %USERPROFILE%\.docker\config.json. Gardez à l'esprit que ce canal nommé, comme le socket Unix sous Linux, donne un contrôle quasi-root sur la machine : quiconque y a accès peut lancer des conteneurs privilégiés et monter le système de fichiers hôte. N'exposez jamais ce pipe (ni le démon en TCP) à des utilisateurs ou des réseaux non fiables. Enfin, distinguez bien les conteneurs Linux (par défaut, via WSL2) des conteneurs Windows : la bascule se fait dans Docker Desktop et change l'ensemble des images compatibles.