Conteneur
Un conteneur est un processus isolé lancé à partir d’une image (qui est un système de fichiers figé + métadonnées).
Un conteneur ne simule pas de matériel : il s’appuie directement sur les appels système du noyau hôte. Il partage le noyau du système hôte avec les autres conteneurs, ce qui le rend :
Plus léger : démarrage rapide, moins de mémoire consommée
Plus éphémère : il peut être créé, arrêté, supprimé en quelques secondes
Plus reproductible : il repose sur une image immuable
Rappel : Conteneur vs Machine virtuelle
Élément |
Machine virtuelle |
Conteneur |
|---|---|---|
Isolation |
Matériel (via hyperviseur) |
Processus (via kernel namespaces) |
Système d’exploitation |
Complet (OS invité, incluant sont propre noyau) |
Partagé (OS hôte) |
Démarrage |
Lent (plusieurs secondes / minutes) |
Rapide (moins d’une seconde) |
Consommation |
Lourde (RAM, disque, CPU) |
Légère |
Cycle de vie d’un conteneur
Un conteneur passe par plusieurs états :
created: défini mais pas encore lancérunning: actif et en cours d’exécutionpaused: suspendu temporairementstopped: arrêté, mais ses données persistentremoved: supprimé du système
Note: Un container ayant un problème se retrouve en état
stoppeds’il y a eu des problèmes au démarrage. Le log est un outil précieux pour comprendre ce qui s’est passé. Dans ce cas, la commande suivante est très utile :
docker logs idDuConteneur
Commandes essentielles
# Lister les conteneurs actifs
docker ps
# Lister tous les conteneurs (même arrêtés)
docker ps -a
# Créer et démarrer un conteneur
docker run nginx
# Démarrer un conteneur en connaissant son nom
docker start nginx
# Démarrer un conteneur en connaissant son id
docker start 6762aed...
# Arrêter un conteneur
docker stop <id>
# Supprimer un conteneur
docker rm <id>
L’id du conteneur est obtenu avec docker ps et correspond à l’item de la première colonne (CONTAINER_ID). Il s’agit d’un hash sha-256 de longueur max 64 caractères. Docker affiche souvent une version réduite et cette version réduite évite déjà des collisions (c’est-à-dire deux ressources portant le même nom).
L’informaticien peut gagner encore plus de temps à la saisie des commandes en tapant les quelques premières symboles de l’id s’il est confiant qu’il n’y a pas de collisions ou d’ambiguïté.

Réflexion
Si je lance deux conteneurs à partir de l’image ubuntu:24.04, est-ce que j’ai deux systèmes d’exploitation qui tournent en parallèle ?
Non. Vous n’avez pas deux OS, mais deux processus isolés qui partagent le même noyau Linux de la machine hôte.
Chaque conteneur se comporte comme un Ubuntu, mais il ne contient ni noyau, ni init system complet. Il ne s’agit pas de vraies machines virtuelles.