Docker versus Podman

O Docker é o mais utilizado sistema de gerenciamento de containers. Não foi ele quem inventou o conceito mas ele quem organizou e o popularizou. Ocorre que o docker não é completamente compatível com o kubernets e isso acabou gerando alguns problemas na comunidade. Por conta disso (mas não só por isso) a RedHat criou o podman como uma alternativa ao Docker mais integrada com o Kubernets.

O Docker ainda reina e tudo indica que continuará reinando por um bom tempo mas o Podman é uma alternativa muito interessante. O ponto mais fundamental é que a linha de comando do docker e do podman são iguais, ou seja, se você sabe docker você sabe podman. No site do podman eles recomandam que vocês façam alias docker=podman, assim as linhas de comando serão identicas, praticamente.

O que é OCI – Open Container Iniciative

Essa é uma iniciativa do mercado para padronizar os containers. A documentação pode ser encontrada no link https://opencontainers.org/. Em linhas gerais eles definem os runtime specifications e os image specifications de modo que um container criado seguido tais especificações seja completamente interoperável com outro.

Diferenças do podman

O podman é internamente diferente do docker porém ambos são compatíveis com a OCI, ou seja, é possível criar uma imagem no podman e rodar no docker e vice-versa. As linhas de comando das duas ferramentas é igual (ou quase igual) e a curva de aprendizado de uma ferramenta para outra é quase zero.

Entretanto o podman, ao contrário o docker, usa uma série de componentes de terceiros, tais como Buildah (para criar imagens), Netavark e Aardvark para controle de rede, Conmon para monitoramento e vários outros. Para mais detalhes acesse o repositório oficial em https://github.com/containers/podman.

Mais uma diferença relevante é que o docker não é feito para o Kubernets, desse modo o time do Kubernets precisa fazer diversas adaptações para suporta-lo enquanto o podman é compliant com a ferramenta de orquestração. Já o docker é completamente compatível com o docker swarm e o podman não (mas pode usar ferramentas como o Nomad que faz suportar o swarm).

Por fim o podman tem uma camada se segurança nativa por ser deamonless não exigindo privilégio de root para sua execução. Caso haja um ataque hacker no host do docker o invasor terá acesso administrativo completo, mas com o podman ele terá acesso restrito. Por outro lado o podman é um pouco mais lento do que o docker.


Thiago Anselme
Thiago Anselme - Gerente de TI - Arquiteto de Soluções

Ele atua/atuou como Dev Full Stack C# .NET / Angular / Kubernetes e afins. Ele possui certificações Microsoft MCTS (6x), MCPD em Web, ITIL v3 e CKAD (Kubernetes) . Thiago é apaixonado por tecnologia, entusiasta de TI desde a infância bem como amante de aprendizado contínuo.

Deixe um comentário