DOCKER - 9 Conteneurs vs VMs
Il est courant de comparer les conteneurs aux machines virtuelles. Cependant, il faut comprendre une vérité fondamentale : un conteneur n'est qu'un processus. Plus précisément, c'est un processus restreint exécuté sur votre système d'exploitation. Ce n'est pas une machine virtuelle. Un conteneur ne crée pas son propre système d'exploitation complet—il partage le noyau de l'OS hôte.
Pour illustrer, commençons un conteneur MongoDB. La commande est :
docker run -d --name mongodb mongo
Vous pouvez lister les processus en exécution dans ce conteneur avec docker top mongodb. Vous verrez un seul processus : le daemon MongoDB. Si vous avez arrêté ce conteneur avec docker stop mongodb, il ne tourne plus. docker ps ne le montrera plus. Vous pouvez le redémarrer avec docker start mongodb, et à ce moment, le processus MongoDB redémarre. Refaites docker top mongodb et vous verrez le processus en exécution à nouveau.
La raison pour laquelle Docker les appelle "conteneurs" plutôt que "processus" est pour la clarté pédagogique. Mais comprendre que c'est fondamentalement un processus restreint est crucial. Chaque conteneur n'a qu'un processus principal (PID 1). S'il s'arrête, le conteneur s'arrête. Vous pouvez avoir plusieurs conteneurs exécutant différents images sur le même OS, et chacun fonctionne de manière isolée sans interférence, tout en partageant le même noyau système.
Cette légèreté—juste un processus restreint plutôt qu'une VM complète—est ce qui rend Docker si puissant et efficace en ressources.