dockerd vs docker-containerd vs docker-runc versus docker-containerd-ctr versus docker-containerd-shim

Esto realmente se está volviendo confuso ahora, ¿alguien puede explicar qué está pasando? solo la diferencia directa del trazador de líneas.

dockerd libcontainerd containerd docker-containerd docker-runc docker-containerd-ctr docker-containerd-shim

Gracias

dockerd – El daemon Docker en sí mismo. El componente de más alto nivel en su list y también el único producto 'Docker' en la list. Proporciona todas las características agradables de UX de Docker.

(docker-) containerd : también un daemon, que escucha en un socket Unix, expone los extremos de gRPC. Maneja todas las tareas de administración de contenedores de bajo nivel, almacenamiento, distribución de imágenes, files adjuntos de networking, etc.

(acoplador-) containerd-ctr – Un CLI ligero para comunicarse directamente con containerd. Piense en ello como lo que 'docker' es 'dockerd'.

(docker-) runc – Un binary liviano para correr contenedores. Se ocupa de la interfaz de bajo nivel con las capacidades de Linux como cgroups, namespaces, etc.

(docker-) containerd-shim : después de que runC realmente ejecuta el contenedor, se cierra (lo que nos permite no tener ningún process de larga duración responsable de nuestros contenedores). El shim es el componente que se encuentra entre containerd y runc para facilitar esto.

Encontré alguna explicación aquí dokcer-cosas :

runC is built on libcontainer which is the same container library powering a Docker engine installation. Prior to the version 1.11, Docker engine was used to manage volumes, networks, containers, images etc.. Now, the Docker architecture is broken into four components: Docker engine, containerd, containerd-shm and runC. The binaries are respectively called docker, docker-containerd, docker-containerd-shim, and docker-runc.

Por favor sigue agregando si tienes otros pensamientos.