🟡 Intermediate

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ývojpodman-compose alebo docker-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áciapodman generate systemd vytvorí 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-compose alebo 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.conf pre definovanie preferovaných registrov
  • Používajte podman auto-update pre automatické aktualizácie kontajnerov s :latest tagom

Podman je ideálnou voľbou pre tímy, ktoré kladú dôraz na bezpečnosť a plánujú migráciu na Kubernetes.