Comment les programmes s'exécutent
Chaque conteneur est simplement un programme qui s'exécute — ce qu'on appelle un processus. Pour vraiment comprendre Docker, il te faut une petite poignée de mots du quotidien qui décrivent comment n'importe quel programme s'exécute. On commence par ce qu'est un processus, où va le texte qu'il affic
Un programme qui s'exécute, c'est comme un employé à son bureau : les réglages arrivent dans sa boîte de réception (variables d'environnement) ; il écrit des notes normales sur un tableau blanc partagé que tout le monde peut lire (stdout) et les erreurs sur un tableau rouge séparé (stderr) ; les messages lui parviennent par une case postale numérotée (un port) ; on peut lui taper sur l'épaule pour lui demander de finir (un signal) ; et quand il part, il remet un mot disant « tout va bien » (0) ou « il y a eu un problème » (différent de zéro) — c'est l'exit code.
- processus
- Un programme qui s'exécute en ce moment. Le fichier sur le disque n'est que du code en attente ; quand tu le démarres, l'instance active en mémoire s'appelle un processus. Un conteneur est essentiellement un tel processus.
- stdout / stderr
- Deux « canaux » sur lesquels un programme écrit du texte. stdout (sortie standard) est le canal de sortie normal — ce que le programme veut que tu voies. stderr est un canal séparé pour les erreurs, afin de pouvoir séparer les messages de problème de la sortie normale.
- port
- Un nombre qui sert de « porte numérotée » par laquelle d'autres programmes ou utilisateurs atteignent un programme en cours d'exécution. Par exemple, un serveur web écoute généralement sur le port 80 ou 8080, comme une case postale numérotée que tout le monde sait utiliser.
- signal
- Un court message que le système d'exploitation envoie à un programme pour lui demander quelque chose — le plus souvent « arrête-toi s'il te plaît ». Quand tu appuies sur Ctrl-C dans le terminal, un tel signal d'arrêt est envoyé, et un programme bien élevé se termine proprement.
- variable d'environnement
- Un réglage nom=valeur transmis à un programme quand il démarre, sans changer son code. C'est ainsi que le même programme reçoit des réglages différents à chaque endroit — par exemple un mot de passe ou un numéro de port — sans toucher au programme lui-même.