containerd

containerd — daemon для управления жизненным циклом контейнеров. Извлечён из Docker в 2016, стал самостоятельным CNCF-проектом. Основа Docker, Kubernetes (после ухода Docker), nerdctl.

Стек

Пользователь (docker CLI / kubectl / crictl / nerdctl)
       ↓
Daemon (dockerd, kubelet, ...)
       ↓
containerd  ← этот
       ↓
runc (OCI runtime)
       ↓
Linux kernel (namespaces, cgroups)

Что делает

CRI

CRI (Container Runtime Interface) — gRPC API, которым kubelet общается с runtime. containerd имплементирует CRI напрямую. K8s → containerd, без Docker.

CLI

CLIДля чего
ctrlow-level debug, из коробки
crictlK8s CRI, стандартизованный
nerdctlDocker-CLI-совместимый (compose тоже)

nerdctl

# всё как docker
nerdctl run -d --name web nginx:alpine
nerdctl ps
nerdctl exec -it web sh
nerdctl compose up

Docker → containerd в K8s (2020)

K8s deprecated dockershim (v1.20), удалил (v1.24). Причина: dockerd — лишний слой над containerd. Kubernetes использует containerd напрямую через CRI.

См. также

← на главную