Docker Desktop, Docker Engine, Docker CLI : qui fait quoi ?
Vous avez Docker Desktop sous les yeux. Voici pourquoi vous n'allez presque jamais cliquer dedans.
Le guide 4 a présenté le Docker Engine et le Docker CLI, avant même l'installation. Maintenant que Docker Desktop tourne réellement sur votre ordinateur, il est temps de préciser où il se situe dans cette organisation.
Ce que Docker Desktop installe réellement
Docker Desktop n'est pas un simple raccourci : c'est une application qui installe et fait tourner plusieurs éléments d'un coup, dont les deux déjà présentés, le Docker Engine et le Docker CLI, ainsi que d'autres outils que vous découvrirez plus loin dans ce parcours, comme Docker Compose.
Concrètement, Docker Desktop s'occupe de démarrer et de maintenir le Docker Engine en arrière-plan, sans que vous ayez à le configurer vous-même. C'est pour cela qu'il faut le laisser ouvert (son icône visible dans la barre de tâches ou la barre de menu suffit, pas besoin de garder sa fenêtre affichée) : tant qu'il tourne, le Docker Engine tourne aussi.
Deux façons d'interagir avec Docker
Docker Desktop propose une interface graphique : une liste des conteneurs en cours d'exécution, une liste des images téléchargées, des boutons pour démarrer ou arrêter un conteneur d'un clic. C'est pratique pour un premier coup d'œil, ou pour vérifier rapidement ce qui tourne.
Mais l'immense majorité de ce parcours va se dérouler dans un terminal, avec le Docker CLI, pas dans cette interface. Ce choix n'est pas arbitraire : les commandes sont précises, reproductibles, et faciles à partager avec quelqu'un d'autre sous forme de texte. C'est aussi la façon dont Docker s'utilise réellement sur un serveur, où aucune interface graphique n'est disponible. Apprendre le CLI dès le début vous rend directement autonome, y compris en dehors de votre ordinateur personnel.
Docker Desktop est la fenêtre. Le Docker Engine est le moteur qui tourne derrière, invisible. Le Docker CLI, la commande que vous tapez dans un terminal, est le volant qui pilote ce moteur. Vous garderez Docker Desktop ouvert tout au long de ce parcours, mais vous passerez le plus clair de votre temps dans un terminal.
Pourquoi cette organisation plutôt qu'une seule application
Séparer le moteur (Engine) de l'interface qui le pilote (CLI, ou l'interface graphique de Desktop) permet à Docker de fonctionner de façon identique, que vous soyez sur votre ordinateur personnel avec une interface graphique, ou sur un serveur distant où seul le terminal existe. Les commandes que vous apprendrez dans ce parcours fonctionneront à l'identique dans les deux cas.
Vérifiez que vous avez compris
Vous fermez complètement Docker Desktop, en quittant l'application (pas seulement en fermant sa fenêtre). Une commande docker ps tapée juste après dans un terminal va-t-elle fonctionner ?
Non, ou en tout cas pas correctement. Quitter réellement Docker Desktop arrête aussi le Docker Engine qu'il fait tourner en arrière-plan. Or le Docker CLI a besoin que ce moteur soit actif pour répondre à une commande : sans lui, le CLI affichera une erreur indiquant qu'il ne parvient pas à contacter le Docker Engine.