Docker vs Podman: qual para construir imagens no CI?
O Podman é uma alternativa daemonless e amigável a rootless em relação ao Docker, com uma CLI compatível - mas o Docker é o que as ferramentas de CI presumem.
O Docker usa um daemon central para construir e rodar containers. O Podman é daemonless, roda rootless por padrão e espelha a CLI do Docker, então muitos comandos são intercambiáveis.
| Docker | Podman | |
|---|---|---|
| Arquitetura | Daemon (dockerd) | Daemonless |
| Rootless | Suportado | Padrão |
| Compatibilidade de CLI | n/a | Compatível com Docker (alias) |
| Compose | Nativo (docker compose) | podman-compose / Quadlet |
| Suporte no ecossistema de CI | Universal | Bom, menos ferramentas por padrão |
No CI
O modelo daemonless e rootless do Podman é atraente por segurança e para runners onde um daemon privilegiado é inconveniente. Sua CLI compatível com Docker significa que muitos pipelines funcionam com mudanças mínimas (muitas vezes apenas alias docker=podman). O Docker continua sendo o padrão que quase todas as actions de CI, registries e build tools presumem, com a experiência out-of-the-box mais tranquila.
Escolhendo para pipelines
Use o Podman quando segurança rootless/daemonless ou licenciamento for um motivador e seus passos de build forem compatíveis com a CLI. Fique no Docker para o mais amplo suporte de ferramentas e menor atrito. Para construir imagens especificamente, considere também BuildKit/Buildah sob qualquer engine.
O veredito
Quer builds rootless/daemonless e paridade de CLI: Podman. Quer o padrão mais universalmente suportado: Docker. A maioria dos pipelines roda em qualquer um dos dois com pequenos ajustes.