Le moteur Docker est le logiciel de base utilisé pour exécuter et gérer les conteneurs. Ses principaux composants sont : Docker Client, Docker démon, containersd et runc.
L'environnement d'exploitation de ce tutoriel : système linux5.9.8, version docker-1.13.1, ordinateur Dell G3.
1. Introduction au moteur Docker
Le moteur Docker est le logiciel de base utilisé pour exécuter et gérer les conteneurs
Le moteur Docker fonctionne avec de nombreux outils dédiés pour créer et exécuter des conteneurs, tels que des API, des pilotes d'exécution, Durée d'exécution, processus de cale, etc.
- Les principaux composants du moteur Docker sont : Docker Client, Docker démon, containersd et runc.
2. Explication détaillée du moteur Docker
- Lorsque Docker a été publié pour la première fois, il se composait de deux composants principaux : LXC et le démon Docker.
- Le démon Docker est un fichier binaire unique qui contient des éléments tels que le client Docker, l'API Docker, le runtime du conteneur, la création d'images, etc.
- LXC offre la possibilité d'utiliser des outils de base tels que les espaces de noms et les groupes de contrôle (CGroup), qui sont des technologies de virtualisation de conteneurs basées sur le noyau Linux. Dans Docker version 0.9, Libcontainer remplace LXC comme pilote d'exécution par défaut.
2.1. Le démon Docker
- L'intégrité du démon Docker pose de plus en plus de problèmes :
- difficile à changer
- fonctionne de plus en plus lentement
- Ce n'est pas ce à quoi s'attendent les entreprises écologiques
- Le démon utilise un CRUD -style API pour communiquer avec containersd via gRPC
2.2. runc
- runc est essentiellement un outil interactif léger en ligne de commande fourni pour Libcontainer.
- Fonction Runc : Créer un conteneur
2.3. containersd
- Fonction principale : gestion du cycle de vie des conteneurs – start|stop|pause|rm…
2.4.4. Implémentation de no Un outil indispensable pour les conteneurs démons. Chaque fois que runc crée un nouveau conteneur, il créera une nouvelle instance runc. Une fois le conteneur créé, le processus runc correspondant se terminera.
Une fois le runc du processus parent terminé, le processus conteneur-shim associé deviendra le processus parent du conteneur
- Une partie des responsabilités du shim :
- Gardez tous les flux STDIN et STDOUT ouverts afin que lorsque le démon est redémarré, le conteneur ne se terminera pas en raison de la fermeture du tuyau.
- Renvoyer l'état de sortie du conteneur au démon. 2.5. Implémentation sous Linux
docker daemon), docker-containerd(containerd), docker-containerd-shim(shim) et docker-runc(runc) sont tous implémentés par une implémentation binaire distincte.
Fonctions principales : gestion des images, construction d'images, API REST, authentification, sécurité, cœur de réseau et orchestration.
Apprentissage recommandé : "- Tutoriel vidéo Docker
"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Déclaration:Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn