graph TB H[Hyperviseur] --> V[Machines Virtuelles] V --> R[Ressources Virtuelles] R --> CPU[vCPU] R --> RAM[vRAM] R --> DISK[vDisk] R --> NET[vNIC]
Concepts et Historique de la Conteneurisation
2026-01-20
À l’issue de ce cours, vous devez être capables de :
- Comprendre l’évolution Physique → VM → Conteneurs
- Expliquer la différence entre machine virtuelle et conteneur
- Utiliser une image pour créer un conteneur
- Créer une image simple avec un Dockerfile
Ce cours est une introduction conceptuelle. Les pratiques et usages avancés seront abordés dans les TP et cours suivants.
Objectif Comprendre ce qui est virtualisé, partagé ou isolé.
Astuce
Toute application passe par le noyau pour accéder aux ressources.
La virtualisation répond à deux problèmes simples :
Ère Physique (1990–2000)
Infrastructure
Contraintes
Ère Virtuelle (2000–2010)
Technologies
Bénéfices
graph TB H[Hyperviseur] --> V[Machines Virtuelles] V --> R[Ressources Virtuelles] R --> CPU[vCPU] R --> RAM[vRAM] R --> DISK[vDisk] R --> NET[vNIC]
Astuce
Une machine virtuelle embarque un OS complet.
CPU : Intel VT-x / AMD-V
Mémoire : EPT / NPT
I/O : SR-IOV, NVMe-oF
Stockage : VMDK, QCOW2, SAN
Type 1 (Bare Metal) : ex. VMware ESX
Type 2 (Hosted) : ex. VirtualBox, VMware Workstation
graph TD HW[Hardware] --> ESX[Hyperviseur] ESX --> VM1[VM Linux] ESX --> VM2[VM Linux] ESX --> VM3[VM Windows]
Avantages
Inconvénients
Les conteneurs ne virtualisent pas une machine, mais isolent des processus.
Namespaces
cgroups
Astuce
Un conteneur est une illusion d’isolation contrôlée par le noyau.
timeline 2000 : FreeBSD Jails : premiers conteneurs OS-level 2007 : cgroups et Namespaces Linux : bases des conteneurs 2008 : LXC : premiers conteneurs Linux 2013 : Docker : popularisation des conteneurs 2017 : Kubernetes : orchestration 2020 : OCI Standards : image et runtime 2024 : CRI-O, Podman : alternatives à Docker
| Critère | VM | Conteneur |
|---|---|---|
| Isolation | “Matérielle” | Noyau |
| OS | Complet | Partagé |
| Démarrage | Minutes | Secondes |
| Taille | Go | Mo |
| Usage | Legacy | Cloud-native |
Astuce
VM = virtualisation de machine Conteneur = virtualisation de processus
Les conteneurs sont une approche d’isolation de processus plutôt qu’une virtualisation de machine.
Isolation Chaque conteneur a son propre espace de processus, réseau et système de fichiers.
Légèreté Pas d’OS complet : seulement les dépendances nécessaires à l’application.
Immutabilité Une image est un artefact immuable : le même contenu donne le même conteneur.
Éphémérité Un conteneur est conçu pour être démarré, arrêté, détruit rapidement.
Portabilité Une image fonctionne de manière identique partout (dev, test, prod, cloud).
Un conteneur est une unité de déploiement : un processus principal isolé, reproductible, portable et facilement orchestrable.
Docker Inc. fondé en 2010
Docker est une plateforme complète qui popularise l’usage des conteneurs
Il fournit :
Avertissement
Docker n’est pas le conteneur Docker est un ensemble d’outils (maintenant basé sur des standards) .
Standardisation en 2015 (OCI)
Alternatives à Docker
Image
Conteneur
docker runAstuce
Une image n’est pas une VM Elle contient uniquement ce qui est nécessaire à l’application.
Docker Compose
Kubernetes
Docker Compose ≠ Kubernetes “en petit”
Astuce
Un conteneur n’est pas un mini-serveur C’est un processus isolé et maîtrisé
E. Bruno - Introduction aux Conteneurs