Ответ 1
dockerd - сам демон Docker. Компонент самого высокого уровня в вашем списке, а также единственный продукт "Docker", указанный в списке. Предоставляет все приятные функции UX Docker.
(docker-) containerd. Также демон, прослушивающий сокет Unix, предоставляет конечные точки gRPC. Управляет всеми задачами управления контейнером низкого уровня, хранением, распределением изображений, подключением к сети и т.д.
(docker-) containerd-ctr. Легкий CLI для прямого взаимодействия с containerd. Подумайте об этом как о том, как "докер" должен "докер".
(docker-) runc - легкий двоичный код для фактически запущенных контейнеров. Работает с низкоуровневым интерфейсом с возможностями Linux, такими как группы, пространства имен и т.д.
(docker-) containerd-shim. После того, как runC фактически запускает контейнер, он выходит (что позволяет нам не иметь длительных процессов, ответственных за наши контейнеры). Прокладка - это компонент, который находится между контейнером и runc, чтобы облегчить это.