Applez Nous: +41 22 518 70 00
Pour comprendre la légèreté des conteneurs, il convient de contraster leur fonctionnement avec celui d’une machine virtuelle classique :
+-----------------------------------+ +-----------------------------------+
| MACHINE VIRTUELLE (VM) | | CONTENEUR DOCKER |
+-----------------------------------+ +-----------------------------------+
| Application Métier A | | Application A | Application B |
| Dépendances & Bibliothèques | | Dépendances A | Dépendances B |
| Système d'Exploitation Invité (OS)| | (Pas d'OS invité dédié) |
+-----------------------------------+ +-----------------------------------+
| Hyperviseur (Type 1 ou 2) | | Moteur de Conteneurs (containerd) |
+-----------------------------------+ +-----------------------------------+
| Système Hôte & Matériel Physique | | Noyau Linux Unique de l'Hôte |
+-----------------------------------+ +-----------------------------------+
Alors qu’une VM charge un noyau complet en mémoire vive (occupant plusieurs gigaoctets et nécessitant des minutes pour démarrer), un conteneur n’est qu’un processus Linux standard isolé, s’exécutant directement sur le noyau de la machine hôte et démarrant en quelques millisecondes.
L’isolation d’un conteneur repose sur la combinaison de deux mécanismes du noyau Linux :
PID : Le processus se voit attribuer le PID 1 dans son propre espace isolé.NET : Interfaces réseau virtuelles, tables de routage et ports propres au conteneur.MNT : Système de fichiers racine indépendant (chroot moderne).IPC : Isolation des communications inter-processus et de la mémoire partagée.UTS : Nom d’hôte (hostname) personnalisé.USER : Mappage des identifiants (l’utilisateur peut être root dans le conteneur mais un simple utilisateur non privilégié sur l’hôte).# Lancer un conteneur avec limites strictes de ressources
docker run -d --name web-swiss
--memory="512m" --cpus="1.0"
-p 8080:80
nginx:alpine
# Inspecter l'allocation et la consommation en direct
docker stats web-swiss
# Exécuter une session de débogage à l'intérieur du conteneur
docker exec -it web-swiss sh
Standard OCI : Docker s’appuie aujourd’hui sur les standards de l’Open Container Initiative (OCI) : le démon de bas niveau
runcexécute les conteneurs, piloté par le runtime industrielcontainerd.