Ce truc est vraiment en train de devenir confus maintenant. Quelqu'un peut-il s'il vous plaît expliquer ce qui se passe. Juste la différence linéaire.
dockerd
libcontainerd
containerd
docker-containerd
docker-runc
docker-containerd-ctr
docker-containerd-shim
merci
dockerd - Le démon Docker lui-même. Le composant de niveau le plus élevé dans votre liste et également le seul produit 'Docker' répertorié. Fournit toutes les fonctionnalités Nice UX de Docker.
(docker-) containerd - Également un démon, écoutant sur un socket Unix, expose les points de terminaison gRPC. Gère toutes les tâches de gestion de conteneur de bas niveau, le stockage, la distribution des images, la connexion au réseau, etc.
(docker-) containerd-ctr - Une CLI légère pour communiquer directement avec containerd. Pensez-y comme "docker" signifie "dockerd".
(docker-) runc - Un binaire léger pour les conteneurs en cours d'exécution. Comprend les interfaces de bas niveau avec les fonctionnalités de Linux telles que les groupes de contrôle, les espaces de noms, etc.
(docker-) containerd-shim - Une fois que runC a exécuté le conteneur, il se ferme (ce qui nous permet de ne pas avoir de processus à long terme responsables de nos conteneurs). La cale est le composant qui se situe entre containerd et runc pour faciliter cela.
De la documentation:
runC est basé sur libcontainer, qui est la même bibliothèque de conteneurs qui alimente une installation de moteur Docker. Avant la version 1.11, le moteur Docker était utilisé pour gérer les volumes, les réseaux, les conteneurs, les images, etc. L’architecture de Docker est désormais divisée en quatre composants:
Docker engine
containerd
containerd-shm
runC.
Les binaires s'appellent respectivement:
docker
docker-containerd
docker-containerd-shim
docker-runc.