Comment fonctionne Docker · Cartes mentales
Comment fonctionne Docker. Une carte mentale modifiable avec des branches colorées, des idées secondaires et des liens. Les courbes montrent les liens; les flèches indiquent les relations où le sens compte.
Docker regroupe une application et tout ce dont elle a besoin dans une image, puis l'exécute en tant que conteneur : un processus isolé qui se comporte de manière identique sur n'importe quelle machine dotée d'un moteur Docker.
Comment fonctionne Docker · Cartes mentales
Le canevas MindMap interactif de cette explication : chaque couloir, ligne et flèche ci-dessus appartient à un véritable diagramme QueryChart que vous pouvez ouvrir et modifier.
Comment lire cette carte mentale
- Commencez par le sujet central, puis suivez une branche colorée pour explorer ses idées.
- Les courbes montrent les liens; les flèches indiquent les relations où le sens compte.
Describe & build
Cette branche rassemble “The Dockerfile is a recipe: base image, dependencies, files to copy, the command to run. It makes the build reproducible — the same file produces the same image everywhere.”, “docker build packages the app and its dependencies”.
Image
Cette branche rassemble “An image is the packaging artifact: everything the app needs to run, frozen in read-only layers. It never changes once built.”, “Image is pushed to a registry, or pulled from one”.
Container
Cette branche rassemble “docker run starts a container from the image”, “Namespaces isolate what the process can see (its own file system, network, processes); cgroups limit what it can use (CPU, memory). This is how many containers run on one host without fighting.”.
Host kernel
Cette branche rassemble “Container shares the host kernel but has its own file system”.
Portable app
Cette branche rassemble “Because the container carries its own runtime, libraries and configuration, “works on my machine” stops being a real failure mode.”.
Liens entre les branches
Une image est un instantané en lecture seule ; un conteneur en est une instance en cours d'exécution.
Les conteneurs partagent le noyau hôte et simulent une isolation avec les espaces de noms : c'est pourquoi ils démarrent en quelques secondes alors que les machines virtuelles prennent quelques minutes.
Les groupes de contrôle limitent ce qu'un conteneur peut consommer, de sorte qu'un voisin bruyant ne peut pas affamer l'hôte.
L’immuabilité de l’image est ce qui rend vrai « c’est pareil partout ».
Docker fournit le packaging et le runtime ; les orchestrateurs comme Kubernetes gèrent de nombreux conteneurs sur plusieurs hôtes.
Relations et enseignements clés
- Une image est un instantané en lecture seule ; un conteneur en est une instance en cours d'exécution.
- Les conteneurs partagent le noyau hôte et simulent une isolation avec les espaces de noms : c'est pourquoi ils démarrent en quelques secondes alors que les machines virtuelles prennent quelques minutes.
- Les groupes de contrôle limitent ce qu'un conteneur peut consommer, de sorte qu'un voisin bruyant ne peut pas affamer l'hôte.
- L’immuabilité de l’image est ce qui rend vrai « c’est pareil partout ».
- Docker fournit le packaging et le runtime ; les orchestrateurs comme Kubernetes gèrent de nombreux conteneurs sur plusieurs hôtes.
Quand utiliser ce visuel
- Expliquer à un développeur pourquoi Docker fonctionne et en quoi un conteneur diffère d'une machine virtuelle.
- Intégrer une équipe au modèle build-ship-run avant qu'elle n'écrive son premier Dockerfile.
- Fonder une conversation sur la dérive de l'environnement : pourquoi "fonctionne sur ma machine" cesse de s'appliquer.
Comment cela fonctionne
Adapter le sujet central
Renommez le sujet pour votre projet ou votre cours.
Développer les branches
Modifiez les idées et ajoutez des exemples ou des notes.
Relier les idées
Reliez les branches; utilisez une flèche lorsque le sens est important.
Questions fréquentes
Quelle est la différence entre un conteneur et une machine virtuelle ?
Une machine virtuelle virtualise le matériel : elle embarque un système d'exploitation complet et un hyperviseur assure la médiation du tout, ce qui la rend lourde et lente à démarrer. Un conteneur virtualise le système d'exploitation : il partage le noyau hôte et utilise des espaces de noms pour l'isolation et des groupes de contrôle pour les limites de ressources. C'est pourquoi les conteneurs démarrent en quelques secondes et sont beaucoup plus légers : le compromis est que tous les conteneurs d'un hôte partagent le noyau de cet hôte.
Qu'est-ce qu'une image par rapport à un conteneur ?
Une image est l'artefact statique : un instantané en lecture seule de l'application et de ses dépendances, construit à partir du Dockerfile. Un conteneur est cette image en mouvement : un processus en cours d'exécution avec un calque inscriptible au-dessus. Vous créez une image une fois et pouvez démarrer des milliers de conteneurs à partir de celle-ci, chacun isolé des autres.
Comment Docker isole-t-il les conteneurs ?
Avec deux fonctionnalités du noyau Linux. Les espaces de noms donnent à chaque conteneur sa propre vue du système (son propre système de fichiers, sa pile réseau, sa table de processus et ses identifiants utilisateur), de sorte qu'il semble être sa propre machine. Les groupes de contrôle (groupes de contrôle) limitent et mesurent les ressources, plafonnant la quantité de CPU, de mémoire et d'E/S qu'un conteneur peut consommer afin qu'un conteneur ne puisse pas faire tomber ses voisins.
Pourquoi Docker rend-il les applications portables ?
Parce que l'image regroupe l'application avec son runtime, ses bibliothèques et sa configuration : tout sauf le noyau. Partout où un moteur Docker existe, l'image s'exécute de la même manière, de sorte que l'écart entre l'ordinateur portable d'un développeur, un exécuteur CI et un serveur de production se réduit à la configuration qui est délibérément conservée en dehors de l'image.
Modifier cette carte mentale dans QueryChart
Ouvrez cette carte mentale sur un espace modifiable. Déplacez les idées et ajoutez des branches et des liens.