Docker · Introduction à Docker

Introduction à Docker

Découvrez l’architecture Docker et lancez vos premiers containers en comprenant chaque option.

Leçon disponible
20 min

Objectifs

  • Expliquer le rôle de Docker Engine, de la CLI et du daemon.
  • Distinguer une image, un container et un registry.
  • Comparer l’isolation d’un container avec celle d’une machine virtuelle.
  • Lancer et observer un premier container avec un port publié.

Comprendre Docker et son architecture

Docker permet de construire, distribuer et exécuter des applications dans des containers. Un container regroupe l’application et ses dépendances tout en partageant le noyau du système hôte.

Une machine virtuelle embarque généralement un système d’exploitation invité complet. Un container est souvent plus léger et démarre plus rapidement, mais il ne constitue pas automatiquement une frontière de sécurité équivalente à une VM.

Docker Engine, CLI et daemon

Docker Engine suit une architecture client-serveur. La commande docker est la CLI cliente. Elle appelle l’API du daemon dockerd, qui crée et gère les images, containers, réseaux et volumes.

  • Docker CLI : interprète vos commandes et contacte le moteur.
  • Docker daemon : exécute les opérations et maintient les objets Docker.
  • Docker Engine : ensemble formé notamment du daemon, de ses API et de la CLI.
Vérifier le client et les informations du moteur
docker --version
docker info
Observer les containers et images connus
docker ps
docker ps -a
docker images

docker info nécessite un daemon accessible. Un client installé ne signifie pas forcément que Docker Engine est démarré ou joignable.

Images, containers et registries

Une image est un modèle en lecture seule utilisé pour créer des containers. Un container est une instance exécutable de cette image avec son propre état d’exécution et une couche d’écriture.

Un registry stocke et distribue des images. Docker Hub est le registry public utilisé par défaut pour de nombreuses images, mais une entreprise peut aussi exploiter un registry privé.

Premier test avec l’image hello-world
docker run hello-world

Si l’image n’existe pas localement, docker run tente de la récupérer depuis le registry configuré avant de créer le container.

Du Dockerfile au container

Le Dockerfile décrit la construction. Le build produit une image versionnée, puis docker run crée et démarre un container à partir de cette image.

  • -d détache le container et rend le terminal disponible.
  • --name web attribue un nom lisible au container.
  • -p 8080:80 publie le port 80 du container sur le port 8080 de l’hôte.
Workflow conceptuel
Dockerfile → Image → Container
Lancer nginx en arrière-plan sur le port 8080
docker run -d --name web -p 8080:80 nginx

Bonnes pratiques

Commencez par observer l’état du moteur et des objets existants. N’exécutez pas une image inconnue avec des privilèges élevés et utilisez des noms explicites pour faciliter l’exploitation.

  • Récupérer les images depuis des éditeurs ou registries de confiance.
  • Publier uniquement les ports réellement nécessaires.
  • Comprendre les options d’un exemple avant de l’adapter à la production.

Mini résumé

  • La CLI contacte le daemon Docker via l’API du moteur.
  • Une image sert de modèle à un ou plusieurs containers.
  • Un registry distribue les images ; Docker Hub en est un exemple.
  • -p 8080:80 relie le port 8080 de l’hôte au port 80 du container.

Mini quiz

Trois questions pour vérifier les notions essentielles de la leçon.

1. Quel composant crée réellement les containers demandés par la CLI ?
2. Quelle relation décrit correctement une image et un container ?
3. Que signifie -p 8080:80 dans docker run ?