Podman — Rootless alternatíva k Dockeru
Podman je open-source kontajnerový engine vyvinutý Red Hatom, ktorý umožňuje spúšťať kontajnery bez root oprávnení a bez démona. Je plne kompatibilný s Docker CLI a OCI štandardmi.
Čo je Podman?
Podman (Pod Manager) vznikol ako bezpečnejšia alternatíva k Dockeru. Kým Docker vyžaduje bežiaci démon s root oprávneniami, Podman funguje ako standalone binárka — každý príkaz je samostatný proces. To eliminuje single point of failure a výrazne znižuje attack surface.
Hlavné rozdiely oproti Dockeru:
- Daemonless — žiadny bežiaci démon na pozadí
- Rootless — kontajnery bežia pod bežným používateľom
- Pod support — natívna podpora pre pody (skupiny kontajnerov), podobne ako v Kubernetes
- Fork-exec model — kontajnery sú priame child procesy, nie procesy démona
Ako funguje
Podman používa rovnaké OCI images ako Docker. Príkazy sú takmer identické:
# Stiahnutie a spustenie kontajnera
podman pull nginx:alpine
podman run -d -p 8080:80 nginx:alpine
# Správa kontajnerov
podman ps
podman logs <id>
podman stop <id>
# Build image
podman build -t myapp .
Mnohí používatelia si jednoducho vytvoria alias alias docker=podman a ich existujúce skripty fungujú bez zmeny.
Pody sú unikátna funkcia Podmanu. Pod zoskupuje kontajnery, ktoré zdieľajú sieťový namespace — rovnako ako Kubernetes pod:
podman pod create --name myapp -p 8080:80
podman run --pod myapp -d nginx:alpine
podman run --pod myapp -d redis:alpine
Z podu viete priamo vygenerovať Kubernetes YAML:
podman generate kube myapp > myapp.yaml
Praktické použitie
- Vývoj —
podman-composealebodocker-compose(s podman socket) pre lokálny development stack - CI/CD — rootless kontajnery v pipeline bez potreby privilegovaného prístupu
- Kubernetes príprava — vytváranie a testovanie podov pred nasadením do clustra
- Systemd integrácia —
podman generate systemdvytvorí unit súbory pre automatický štart kontajnerov
Podman je predvolený kontajnerový engine v RHEL, CentOS Stream a Fedore. Na Ubuntu a Debiane sa inštaluje cez apt install podman.
Best Practices
- Používajte rootless mód ako default — root len keď je to nevyhnutné
- Pre compose workflowy použite
podman-composealebo aktivujte podman socket pre kompatibilitu s docker-compose - Využívajte pody na zoskupovanie súvisiacich kontajnerov
- Generujte Kubernetes manifesty priamo z podov pre jednoduchšiu migráciu
- Nastavte
registries.confpre definovanie preferovaných registrov - Používajte
podman auto-updatepre automatické aktualizácie kontajnerov s:latesttagom
Podman je ideálnou voľbou pre tímy, ktoré kladú dôraz na bezpečnosť a plánujú migráciu na Kubernetes.