Docker i Podman jsou nástroje na práci s kontejnery. Podman je novější nástroj, který kopíruje UI Dockeru, ale v tom jak pracují jsou zásadní rozdíly.
Docker běží jako client/server, Docker client říká serveru jak má vytvářet kontejnery. Namísto toho Podman vytvoří nový proces standardne (fork/exec), Podman také umí běžet pod non-root uživatelem.
Co se týká bezpečnosti, Podman je lepší. Pokud se někdo dostane k Docker socketu, je de facto root na serveru. Podman nemá žádnou běžící komponetu, každý uživatel vytváří kontejnery ve svém kontextu.
Docker
- Funguje na modelu client/server
- Client má pro Linux, Mac i Windows, server běží na Linuxu, v Macu a Windows je Linux VM v xHyve nebo Hyper-V
- Podpora BuildKit
- Kontejnery se pustí po restartu serveru
Podman
- Nemá běžící daemon
- Může běžet pod non-root uživatelem
- Používá tradiční fork/exec model
Oba podporují build images, i multistage. Podman však nepodporuje BuildKit. Síťování mají podobně, ale ne stejně.