Vous savez maintenant ce qu'est une image et ce qu'est un conteneur. Il reste une question à éclaircir avant d'installer quoi que ce soit : quand vous demandez à Docker de faire quelque chose, qui exécute réellement le travail ?

Deux acteurs, un seul mot « Docker »

Docker repose en réalité sur deux composants distincts, qui portent souvent le même nom dans le langage courant, ce qui entretient la confusion. Le premier s'appelle le Docker Engine (ou daemon) : c'est un programme qui tourne en arrière-plan sur votre ordinateur, et qui fait le vrai travail. C'est lui qui télécharge les images, crée les conteneurs, les démarre, les arrête, gère leur réseau et leur stockage.

Le second s'appelle le Docker CLI (pour Command Line Interface, interface en ligne de commande) : c'est la commande docker que vous allez taper dans un terminal. Le CLI ne fait aucun travail lui-même. Il se contente d'envoyer votre demande au Docker Engine, et d'afficher la réponse.

Le trajet d'une commande, étape par étape

Voici ce qui se passe, dans l'ordre, quand vous taperez plus tard une commande comme docker run :

  • Vous tapez la commande dans un terminal. Le Docker CLI la lit.
  • Le CLI transforme cette commande en une demande, et l'envoie au Docker Engine, qui tourne en arrière-plan.
  • Le Docker Engine exécute la demande : il vérifie si l'image nécessaire est déjà présente sur votre ordinateur, la télécharge si besoin, puis crée et démarre le conteneur.
  • Le Docker Engine renvoie le résultat au CLI, qui l'affiche dans votre terminal.
À retenir

Le Docker Engine doit être en cours d'exécution pour que la moindre commande Docker fonctionne. C'est une source d'erreur très fréquente chez les débutants : taper une commande alors que le Docker Engine n'a pas encore démarré. Vous verrez au guide 30 comment reconnaître et corriger ce cas précis.

Et Docker Desktop, dans tout ça ?

Vous allez installer, au prochain guide, une application appelée Docker Desktop. Retenez pour l'instant qu'elle a pour rôle de démarrer et de gérer le Docker Engine pour vous, avec une interface graphique, sans que vous ayez à le configurer manuellement. Le guide 6 y reviendra en détail, une fois que vous l'aurez concrètement sous les yeux.

Vérifiez que vous avez compris

Vous tapez une commande Docker dans un terminal. Est-ce le terminal qui télécharge l'image et crée le conteneur ?

Non. Le terminal exécute le Docker CLI, qui se contente de transmettre votre demande au Docker Engine, le programme qui tourne en arrière-plan sur votre ordinateur. C'est le Docker Engine qui télécharge réellement l'image et crée le conteneur ; le CLI n'est qu'un messager entre vous et lui.