6 pontos por GN⁺ 2024-01-14 | 1 comentários | Compartilhar no WhatsApp

Comparação entre Podman e Docker

  • Tanto o Podman quanto o Docker permitem executar, gerenciar e implantar contêineres de forma eficiente e escalável.
  • O Podman usa uma arquitetura sem daemon, permitindo que o próprio usuário gerencie diretamente os contêineres.
  • O Podman se integra ao Systemd para gerenciar o ciclo de vida dos contêineres.
  • É possível orquestrar vários contêineres com o Podman Compose, que oferece funcionalidades semelhantes ao Docker Compose.
  • Em termos de segurança, o Podman oferece configurações padrão mais reforçadas do que o Docker.

Instalando o Podman

  • O Podman pode ser executado no macOS, Windows e nas principais distribuições Linux.
  • No Linux, ele funciona nativamente; no Windows e no macOS, opera por meio de uma máquina virtual.
  • O processo de instalação é feito com os comandos sudo apt update e sudo apt install podman.

Executando o primeiro contêiner

  • Use a imagem "Hello World!" para verificar se a instalação do Podman está funcionando corretamente.
  • Como o Podman segue o padrão OCI (Open Container Initiative), ele é compatível com imagens Docker.

Usando nomes curtos de imagem

  • O Podman recomenda usar o nome completo ao referenciar imagens.
  • Ao usar nomes curtos, o Podman consulta o arquivo de configuração para identificar o nome de imagem totalmente qualificado.

Usando um registro privado de imagens

  • Assim como o Docker, o Podman pode ser usado com registros privados.
  • É possível seguir um exemplo de configuração de registro privado usando uma conta do Docker Hub.

Orquestrando vários contêineres

  • É possível orquestrar vários contêineres usando o Podman Compose.
  • O Podman Compose oferece funcionalidades semelhantes ao Docker Compose e é compatível com arquivos docker-compose.yml existentes.

Opinião do GN⁺:

  • O Podman é um mecanismo de contêineres que, em comparação com o Docker, pode ser mais rápido e oferece configurações padrão mais reforçadas em termos de segurança. Isso pode torná-lo uma alternativa atraente para desenvolvedores e administradores de sistemas.
  • A arquitetura sem daemon do Podman facilita a trilha de auditoria de segurança, permitindo identificar o usuário em caso de incidente de segurança.
  • A compatibilidade entre Podman e Docker ajuda usuários atuais do Docker a migrarem com facilidade para o Podman. Isso é útil para organizações que querem melhorar segurança e desempenho sem abrir mão da infraestrutura e dos fluxos de trabalho existentes.

1 comentários

 
GN⁺ 2024-01-14
Opiniões no Hacker News
  • Podman e systemd

    • O Podman era ótimo quando oferecia suporte a arquivos de unidade do systemd. Era possível iniciar e atualizar contêineres e pods automaticamente.
    • No entanto, ao passar a preferir o Quadlet, removeu essa funcionalidade. Agora, um único contêiner pode ser gerenciado com um arquivo de unidade, mas para pods é necessária uma definição de cluster do Kubernetes.
    • Ao contrário do Docker, os contêineres do Podman operam de acordo com as definições do SELinux, o que faz com que o problema de não conseguir acessar diretórios mapeados se repita.
    • Há confusão sobre se deve usar Podman, se deve usar Kubernetes, ou se é preciso criar diretórios dedicados em vez de usar a localização lógica.
  • Compatibilidade de rede do Podman

    • Uma das principais vantagens do Podman é que, ao contrário do Docker, ele não bagunça a configuração de rede.
    • Ao usar Docker, operar bridges junto com máquinas virtuais KVM era um pesadelo, mas o Podman funciona bem por padrão.
    • Também havia problemas de VPN ser corrompida ou interrompida pelo Docker, mas até agora a forma como o Podman lida com rede não tem atrapalhado outras tarefas.
  • A popularidade crescente do Podman

    • Muitas ferramentas foram criadas assumindo que seria adicionado um grupo sudo docker, mas isso causa problemas em configurações do Docker com foco em segurança.
    • O Podman pode ser usado sem privilégios de root, o que é positivo do ponto de vista de segurança.
  • Experiência de um engenheiro RHEL com o Podman

    • Como engenheiro certificado em RHEL, ele gosta de usar o Podman para uso pessoal com contêineres.
    • No entanto, para desenvolvedores, ainda usa Docker, já que o Podman não oferece algo que substitua a simplicidade do Docker Compose.
    • Em pipelines de CI, usa Buildah, mas para usuários desenvolvedores o Docker Compose ainda continua dominante.
  • Falha de segurança entre Docker e UFW

    • Quase foi afetado pela falha de segurança entre Docker e UFW.
  • A importância de contêineres rootless e namespaces isolados

    • Contêineres rootless e namespaces isolados são recursos de segurança importantes.
    • Também é possível usar rootless no Docker, e a configuração não é complicada.
    • A vantagem de continuar com o Docker é a maior acessibilidade: mais comunidade, blogs, ampla disponibilidade de configurações do Docker Compose e colegas que sabem como usá-lo.
    • No fim, tanto Podman quanto Docker executam processos em namespaces isolados no host.
  • Podman, a alternativa da Red Hat ao Docker

    • Não está claro por que a Red Hat criou uma alternativa ao Docker, mas o Podman agrada.
    • O Podman consegue fazer quase tudo que o Docker faz e ainda oferece mais recursos em alguns casos (por exemplo, pods), ou faz melhor do jeito dele (por exemplo, o processo de criação de contêineres sem daemon).
    • Para desenvolvedores, o principal problema pode ser o Docker Compose, mas se você usa arquivos Compose simples, existe o script podman-compose, que tenta ser compatível com a especificação do Docker Compose.
    • Também é possível usar o Podman como backend do Docker Compose. Em 2024, pelo menos em máquinas Linux, não parece haver motivo para usar Docker. Não está claro como o Podman se comporta em macOS ou Windows.
  • A abordagem do Podman focada em segurança

    • A abordagem do Podman voltada para segurança e algumas de suas decisões agradam. Ele oferece padrões seguros por padrão e é compatível com Docker Compose.
    • Se o Podman ganhar popularidade suficiente, pode acabar seguindo um caminho próprio para comandos e arquivos yml. No momento, parece uma ferramenta que "depende" dos formatos de arquivo do Docker e do Docker Compose.
    • O Podman precisa de uma alternativa ao swarm que compense a falta de orquestração sem k8s. Isso poderia oferecer uma forma simples e razoável de operar contêineres em pequena escala sob uma boa perspectiva de segurança.
  • Problemas enfrentados ao usar Podman

    • O Podman é excelente, mas quando começou a usá-lo como substituto do Docker, houve problemas com mapeamento de UID e GID, políticas do SELINUX e configurações de DNS ausentes.
    • Ao tentar resolver esses problemas executando migrações do sistema, várias vezes acabou bagunçando a configuração. Há questões complexas relacionadas a ACLs de segurança, mapeamento de IDs e labels.
    • Ficou satisfeito com o resultado, mas não foi uma solução que "simplesmente funciona" como o Docker. É possível que tenha melhorado desde então.
  • Podman e Apple Silicon

    • Ao contrário do Docker, o Podman não tem a capacidade de executar imagens x86 no Apple Silicon via Rosetta.
    • O QEMU é lento demais para uso real.