containerd: Podman en alternatieven
containerd werd op 29 maart 2017 door de CNCF in de status Incubating opgenomen. Op 28 februari 2019 bereikte het project de status Graduated — de hoogste status binnen de CNCF. Dit betekent dat containerd productierijp is, een gezonde ontwikkelaarscommunity heeft en een erkende rol speelt in cloud-native infrastructuur.
containerd is geen orchestrator zoals Kubernetes, maar de laag die daadwerkelijk containers op het hostbesturingssysteem uitvoert. Kubernetes werkt standaard met containerd sinds versie 1.20.
containerd installeren
Installeer containerd via de pakketbeheerder:sudo apt update && sudo apt install containerd -y
Op RHEL-gebaseerde systemen gebruikt u dnf:
sudo dnf install containerd -y
containerd configureren
De configuratie van containerd gebeurt via een TOML-bestand, typisch geplaatst op `/etc/containerd/config.toml`. Als dit bestand niet aanwezig is, gebruikt containerd standaardinstellingen.Genereer de standaardconfiguratie:
sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.tomlDe configuratie bevat globale instellingen zoals `root` (voor de opslag van containerdata) en `state` (voor runtimegegevens), en secties voor specifieke componenten zoals `[grpc]` en `[debug]`. De GRPC-interface definieert het socketadres (`/run/containerd/containerd.sock`) dat wordt gebruikt voor communicatie met clients.
Start containerd als service:
sudo systemctl enable --now containerd
Podman: daemonless container engine
Podman is een container-engine ontwikkeld door Red Hat, beschikbaar in RHEL 7.6 en later. De eerste publieke releases verschenen in 2018, met stabiele versie 1.0.0 op 16 januari 2019. Podman is compatibel met de Open Container Initiative (OCI)-standaarden en gebruikt dezelfde containerimages als Docker.Podman is daemonless: het voert containers direct uit als reguliere processen onder de gebruiker die ze start. Dit elimineert een beveiligingsrisico — een geëscaleerde aanval op een centrale daemon zoals `dockerd` zou anders toegang kunnen geven tot het hele systeem.
Red Hat positioneert Podman als alternatief voor Docker wanneer security, UID-separation en systemd-integratie belangrijk zijn. UID-separation laat containers draaien onder de identiteit van de startende gebruiker, zonder sudo of rootrechten. Podman integreert met systemd, waardoor containers als systeemservices kunnen draaien met automatisch opstarten.
Podman installeren
Installeer Podman via de pakketbeheerder:sudo apt update && sudo apt install podman -y
Op RHEL-gebaseerde systemen:
sudo dnf install podman -y
Podman gebruiken
Start een container met Podman:podman run --name nginx-test -d -p 8080:80 nginx:1.25
Bekijk actieve containers:
podman ps
Podman bevat geen eigen runtime. Het gebruikt OCI-compatibele runtimes zoals `runc`. Dit maakt Podman flexibel: het combineert een Docker-achtige interface met de veiligheid van een daemonless architectuur.
Podman Desktop
Op 23 mei 2023 lanceerde Red Hat Podman Desktop 1.0, een grafische interface voor het beheren van containers zonder terminal. Podman Desktop integreert met lokale en externe Podman-instanties en toont actieve containers, images en pods.Op 21 januari 2025 werden Podman Desktop en Podman Container Tools officieel geaccepteerd door de CNCF in de status Sandbox. Deze status erkent de projecten als veelbelovend, maar in een vroeg stadium van adoptie.
Installeer Podman Desktop via Flatpak:
flatpak install flathub io.podman_desktop.PodmanDesktop -y
containerd versus Podman: de keuze
containerd is een runtime: een laag die door andere systemen wordt gebruikt om containers uit te voeren. Het is vaak onzichtbaar voor de eindgebruiker en werkt als onderdeel van grotere stacks zoals Kubernetes.Podman is een engine met een gebruikersinterface en CLI, bedoeld voor direct gebruik door ontwikkelaars en beheerders. Het kan samenwerken met containerd, maar functioneert ook zonder.
De keuze hangt af van de use case. containerd is ideaal voor productieclusters waar stabiliteit en standaardisatie centraal staan. Podman is sterker in ontwikkelomgevingen en systemen waar veiligheid en gebruikersisolatie belangrijk zijn.
Alternatieven in de container-ecologie
Naast containerd en Podman bestaan andere container-runtimes en -tools:- CRI-O: lichte runtime specifiek ontworpen om de Kubernetes Container Runtime Interface (CRI) te implementeren, vaak gebruikt in Red Hat OpenShift-omgevingen
- LXC/LXD: systeemcontainers met een eigen benadering van virtualisatie
- rkt: container-runtime van CoreOS, niet meer actief ontwikkeld
Verificatie
Controleer of containerd correct draait:sudo systemctl status containerd
sudo ctr versionControleer Podman:
podman --version
podman infoTest of u een container kunt draaien:
podman run hello-world
Veelgestelde problemen
Probleem: containerd start niet na installatie Controleer of de configuratie geldig is: `sudo containerd config check`. Verwijder een beschadigd configuratiebestand met `sudo rm /etc/containerd/config.toml` en start opnieuw.Probleem: Podman kan geen images pullen Controleer de netwerktoegang tot registry's: `podman pull docker.io/library/nginx:1.25`. Bij DNS-problemen, voeg `dns` toe aan `/etc/containers/registries.conf`.
Probleem: rootless Podman geeft permission errors Installeer `slirp4netns` en `fuse-overlayfs`: `sudo apt install slirp4netns fuse-overlayfs -y`. Start de user service opnieuw met `systemctl --user restart podman.socket`.
De container-ecologie blijft zich ontwikkelen, en de scheidslijn tussen runtimes en engines vervaagt — de vraag is niet welke tool u kiest, maar welke laag u nodig hebt voor uw infrastructuur.