Deux concepts centraux :
Une image :
Un conteneur :
Autres concepts primordiaux :
Un volume :
Un réseau : Les conteneurs Docker sont isolés par défaut : sans configuration réseau explicite, ils ne peuvent ni communiquer entre eux ni accéder à l’extérieur.
Un registre d’image de conteneur :
Pour cette partie du cours, nous allons utiliser Docker comme plateforme de conteneurisation. Il existe plusieurs autres solutions, mais Docker demeure la référence du secteur.
Il permet d’emballer une application et toutes ses dépendances dans une image, puis de l’exécuter de manière uniforme sur n’importe quel système.
Docker desktop s’installe sur tous les OS actuels, ce qui permet d’élimine le fameux « ça marche sur ma machine », puisque l’environnement d’exécution est entièrement standardisé et autonome.
Docker repose sur une architecture client‑serveur. Le client Docker envoie des commandes au démon Docker, qui se charge de tout le travail :
Le client et le démon peuvent fonctionner sur la même machine, ou le client peut se connecter à un démon Docker distant.
La communication entre les deux se fait via une API REST, accessible par un socket UNIX ou une interface réseau.
Docker Compose est un autre client : il permet de gérer des applications composées de plusieurs conteneurs.

Le démon Docker (dockerd) écoute les requêtes envoyées via l’API Docker et gère tous les objets Docker :
Le client Docker (Docker) est l’outil principal utilisé par les développeurs et administrateurs. Quand tu exécutes une commande comme Docker run, le client envoie l’instruction au démon, qui l’exécute. Le client utilise l’API Docker et peut communiquer avec plusieurs démons simultanément.
Docker Desktop est une application simple à installer pour macOS, Windows et certaines distributions Linux. Elle regroupe tout ce qu’il faut pour développer et exécuter des applications conteneurisées :
C’est l’environnement le plus pratique pour les étudiants et les développeurs qui travaillent sur poste de travail.
Un registre est un service qui stocke et distribue des images de conteneurs.
Docker Hub est le registre public le plus connu, utilisé par défaut par Docker.
Il est aussi possible d’héberger un registre privé pour une organisation.
Lorsqu’on exécute Docker pull ou Docker run, Docker télécharge automatiquement l’image depuis le registre configuré. Lorsqu’on exécute Docker push, Docker envoie l’image vers ce registre.
un conteneur Docker en cours de fonctionnement est un processus (et ses processus enfants) qui tourne dans une machine Linux hôte (mais ce processus est isolé des processus de l’hôte) - La grande majorité des conteneurs tournent sur un noyau Linux. - Sur des host Windows/macOS, Docker lance une VM Linux pour faire tourner les conteneurs. (Souvent WSL2 pour windows) - Il existe aussi des conteneurs qui roulent sur un noyau Windows, beaucoup moins répandus, surtout utilisés pour des applications .NET Framework legacy