Dieses Zeug wird jetzt wirklich verwirrt. Kann jemand bitte erklären, was los ist. Nur der gerade Einzeiler Unterschied.
dockerd
libcontainerd
containerd
docker-containerd
docker-runc
docker-containerd-ctr
docker-containerd-shim
vielen Dank
dockerd - Der Docker-Daemon selbst. Die Komponente auf höchster Ebene in Ihrer Liste und auch das einzige aufgeführte Docker-Produkt. Bietet alle Nice UX-Funktionen von Docker.
(docker-) containerd - Auch ein Daemon, der einen Unix-Socket überwacht, macht gRPC-Endpunkte verfügbar. Erledigt alle Low-Level-Container-Management-Aufgaben, Speicherung, Image-Verteilung, Netzwerkanbindung usw.
(docker-) containerd-ctr - Eine einfache CLI zur direkten Kommunikation mit containerd. Stellen Sie sich vor, wie Docker Dockerd ist.
(docker-) runc - Eine einfache Binärdatei für die Ausführung von Containern. Beschäftigt sich mit der einfachen Schnittstelle zu Linux-Funktionen wie cgroups, Namespaces usw.
(docker-) containerd-shim - Nachdem runC den Container tatsächlich ausgeführt hat, wird er beendet (sodass wir keine lang laufenden Prozesse für unsere Container haben können). Das Shim ist die Komponente, die sich zwischen containerd und runc befindet, um dies zu erleichtern.
Aus der Dokumentation:
runC basiert auf libcontainer, der gleichen Container-Bibliothek, die eine Docker-Engine-Installation versorgt. Vor der Version 1.11 wurde die Docker-Engine zum Verwalten von Volumes, Netzwerken, Containern, Images usw. verwendet. Die Docker-Architektur ist nun in vier Komponenten unterteilt:
Docker engine
containerd
containerd-shm
runC.
Die Binaries heißen jeweils:
docker
docker-containerd
docker-containerd-shim
docker-runc.
https://i.stack.imgur.com/lAtSR.png
https://hackernoon.com/docker-containerd-standalone-runtimes-heres-what-you-should-know-b834ef155426