containerd ist "nur" die Laufzeit & Daemon für [[Container]]. Man kann Container nicht direkt damit verwalten, sondern über Clients/CLIs oben drauf. Die wichtigsten sind:
* nerdctl – Docker-ähnliche CLI (empfohlen für den Alltag)
* ctr – Low-Level-Tool, gut für Debugging, weniger bequem
* crictl – Für Kubernetes/CRI-Workloads
[[Docker]] verwendet "under the hood" ebenfalls containerd. **By default verwendet containerd [[runc]] als container runtime**. Eine noch tiefere Schicht: das eigentliche OCI Runtime Tool, das Container Prozesse direkt mit Linux [[linux#namespaces|Linux Namespaces]] und [[cgroups]] startet. (containerd ruft runc auf, um Containerprozesse zu starten.)
=====Installation=====
# containerd installieren
sudo apt-get install -y containerd
# Standardkonfiguration erzeugen
sudo mkdir -p /etc/containerd
containerd config default | sudo tee /etc/containerd/config.toml >/dev/null
# systemd-cgroups aktivieren (wichtig, damit kubelet + containerd zusammenpassen)
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
# Dienst aktivieren
sudo systemctl enable --now containerd
=====Nerdctl=====
# Image holen
nerdctl pull nginx:alpine
# Container starten (Name, Port, Hintergrund)
nerdctl run -d --name web -p 8080:80 nginx:alpine
# Auflisten
nerdctl ps # laufende
nerdctl ps -a # alle
# Logs & Shell
nerdctl logs -f web
nerdctl exec -it web sh
# Stoppen/Starten/Entfernen
nerdctl stop web
nerdctl start web
nerdctl rm web
# Images/Volumes/Netze
nerdctl images
nerdctl volume ls
nerdctl network ls
# nerdctl compose benötigt "nerdctl full" bzw. cni/plugins installiert
nerdctl compose up -d
nerdctl compose down
=====CTR=====
# Image holen
sudo ctr images pull docker.io/library/nginx:alpine
# Container erstellen + starten
sudo ctr run -d --net-host docker.io/library/nginx:alpine web
# Auflisten
sudo ctr containers ls
sudo ctr tasks ls
# Logs gibt es so nicht direkt -> in den Container oder stdout umleiten
sudo ctr tasks exec --exec-id sh -t web sh
# Stoppen & entfernen
sudo ctr tasks kill -s SIGTERM web
sudo ctr tasks rm web
sudo ctr containers rm web
# Namespace beachten
sudo ctr namespaces ls
sudo ctr --namespace k8s.io containers ls