O que é o Podman?

Copiar URL

O Podman (abreviação de gerenciador pod) é uma ferramenta open source usada para desenvolvimento, gerenciamento e execução de containers. Desenvolvido pelos engenheiros da Red Hat® com a comunidade open source, o Podman gerencia todo o ecossistema de containers usando a biblioteca libpod. 

A arquitetura inclusiva e daemonless do Podman o tornam uma opção acessível e com foco em segurança para gerenciamento de containers. Além disso, suas ferramentas e funcionalidades, como Buildah e Skopeo, permitem que os desenvolvedores personalizem seus ambientes de containers para atender às suas necessidades. Os desenvolvedores também podem aproveitar o Podman Desktop, uma interface gráfica de usuário (GUI) para usar o Podman em ambientes locais.

Os usuários podem executar o Podman em várias distribuições do Linux®, como Red Hat Enterprise Linux, Fedora, CentOS e Ubuntu

Experimente o Red Hat Enterprise Linux
 

Pods são grupos de containers executados juntos e que compartilham os mesmos recursos, semelhantes aos pods do Kubernetes. O Podman gerencia esses pods por uma interface de linha de comando (CLI) simples e pela biblioteca libpod, que oferece interfaces de programação de aplicações (APIs) para gerenciar containers, pods, imagens de container e volumes. A CLI do Podman cria e dá suporte a containers da Open Container Initiative (OCI), feitos para cumprir com os padrões do setor para formatos e runtimes de containers. Mais recursos de desenvolvimento avançados estão disponíveis no projeto relacionado, Buildah.

Cada pod é composto por um infracontainer e qualquer quantidade de containers regulares. O container de infraestrutura mantém o pod em execução e preserva os namespaces de usuário, que isolam os containers do host. Cada um dos outros containers tem um monitor para acompanhar os processos e buscar containers mortos, ou seja, containers que não estão funcionando e que não podem ser removidos do ambiente porque alguns de seus recursos ainda estão sendo usados.

Acesse a biblioteca de conteúdos da Red Hat

O Podman se destaca de outros mecanismos de container porque é sem daemon, o que significa que ele não conta com um processo com privilégios raiz (de superusuário) para executar containers.

Daemons são processos executados no plano de fundo do seu sistema para realizar o trabalho de executar containers sem uma interface de usuário. Pense nos daemons como intermediários na comunicação entre o usuário e o container.

Os daemons são uma maneira conveniente de gerenciar seu ambiente de containers, mas eles também podem introduzir vulnerabilidades de segurança. Muitos daemons são executados com privilégios de root. Em sistemas Linux, a conta raiz (root) atua como um superusuário com acesso administrativo (ao mesmo tempo em que ignora a necessidade de verificação de administrador) para ler arquivos, instalar programas, editar aplicações e muito mais. Isso torna os daemons o alvo ideal para hackers que querem controlar seus containers e se infiltrar no sistema de host.

O Podman remove o daemon e deixa que usuários regulares executem containers sem interagir com um daemon de propriedade raiz ou permite o uso de containers sem raiz. Com a execução rootless, os usuários podem criar, executar e gerenciar containers sem depender de processos com privilégios administrativos, tornando o ambiente mais acessível e reduzindo os riscos de segurança. Além disso, o Podman inicia cada container com um rótulo deSecurity-Enhanced Linux (SELinux), dando aos administradores mais controle sobre quais recursos são disponibilizados para os processos de container.

Os usuários podem chamar o Podman a partir da linha de comando para extrair containers de um repositório e executá-los. O Podman chama o runtime do container configurado para criar o container em execução. Porém, sem um daemon dedicado, o Podman usa o systemd, um gerenciador de serviços e sistemas para sistemas operacionais Linux, para realizar atualizações e manter os containers em execução no plano de fundo. Ao integrar o systemd e o Podman, você pode gerar unidades de controle para seus containers e executá-los com o systemd ativado automaticamente.

Usuários podem controlar o gerenciamento e o início automáticos de seus containers pelos seus próprios repositórios no sistema ou nas unidades systemd. Permitir que usuários gerenciem os próprios recursos e executem containers sem acesso raiz pode evitar a tentação de conceder permissões como de escrita em áreas do sistema que não deveriam ser alteradas. Isso também garante que cada usuário tenha seus containers e imagens, podendo usar o Podman simultaneamente no mesmo host sem interferência entre si. Quando os usuários terminam seu trabalho, eles podem enviar as mudanças a um registro em comum para compartilhar a imagem com outras pessoas.

O Podman também implanta uma API RESTful (API REST) para gerenciar containers. REST significa "representational state transfer" ("transferência representacional de estado", em português). API REST é uma API que está em conformidade com as restrições do estilo de arquitetura REST, permitindo a interação com serviços web RESTful. Com a API REST, você pode chamar o Podman a partir de plataformas como cURL, Postman, cliente REST avançado do Google e muitas outras.

Experimente estas cinco funcionalidades do Podman agora mesmo

O Podman Desktop é uma GUI para Podman, que oferece um lugar central para desenvolvedores trabalharem com containers em seus laptops ou estações de trabalho. Os desenvolvedores podem criar, extrair ou enviar imagens e gerenciar recursos usando diretamente uma GUI que é consistente entre ambientes locais de Linux, Windows e macOS. Além disso, ele também permite que desenvolvedores entreguem aplicações em containers prontas para implantação para ambientes Kubernetes.

O Podman Desktop dá suporte a pacotes de extensão, o que possibilita recursos adicionais. Um exemplo, o Podman AI Lab, adiciona receitas para desenvolver aplicações que funcionem com large language models (LLMs) em um ambiente local e inclua um catálogo selecionado de LLMs licenciados open source. Um outro exemplo é o pacote de extensão da Red Hat para Podman Desktop, que ajuda os desenvolvedores a trabalharem com as tecnologias da Red Hat como o Red Hat OpenShift®.

A Red Hat também oferece uma versão opinativa do Podman Desktop. O Red Hat build of Podman Desktop é uma aplicação desktop leve com controles de segurança integrados para desenvolver, gerenciar e implantar containers no Linux, MacOS e Windows. Ele aumenta a produtividade oferecendo uma experiência de desenvolvedor consistente, desde a máquina local até implantações de produção em nuvem híbrida, além de se integrar a plataformas como o Red Hat OpenShift e o Kubernetes.

A Red Hat também oferece uma versão opinativa do Podman Desktop. O Red Hat build of Podman Desktop é uma aplicação desktop leve com controles de segurança integrados para desenvolver, gerenciar e implantar containers no Linux, MacOS e Windows. Ele aumenta a produtividade oferecendo uma experiência de desenvolvedor consistente, desde a máquina local até implantações de produção em nuvem híbrida, além de se integrar a plataformas como o Red Hat OpenShift e o Kubernetes.

Conheça o Red Hat build of Podman Desktop

O Podman é uma plataforma de containers modular. Por isso, ele precisa trabalhar com ferramentas como o Buildah e o Skopeo para desenvolver e migrar containers. Com o Buildah, você pode desenvolver containers do zero ou usando uma imagem como ponto de partida. O Skopeo move imagens de container entre diferentes tipos de sistemas de armazenamento, o que permite copiar imagens entre registros como docker.io, quay.io e seu registro interno, ou entre diferentes tipos de armazenamento no seu sistema local. Essa abordagem modular de conteinerização tem como resultado um ambiente flexível e lightweight, reduzindo custos indiretos e isolando funcionalidades necessárias. Trabalhar com containers possibilita o uso de ferramentas menores e mais modulares que podem se concentrar em um único propósito e serem atualizadas conforme desejado.

Podman, Buildah e Skopeo são como um conjunto de canivetes suíços especializados. Combinados, eles podem atender a quase todos os casos de uso de container. O Podman é o maior desses canivetes.

Por padrão, o Podman e o Buildah usam runC, o runtime de OCI, para iniciar containers. Você pode usar o runC para desenvolver e executar uma imagem ou executar imagens com o formato docker. Essa ferramenta baseada em linguagem Go lê uma especificação de runtime, configura o kernel do Linux e, por fim, cria e inicia processos de container. Com algumas alterações de configuração, você também pode usar o Podman com outros ambientes, como o crun.

Desenvolva containers UBI no GitHub Actions com o Buildah e o Podman

O Docker é uma tecnologia de conteinerização que permite criar e usar containers Linux. A principal diferença entre o Podman e o Docker é a arquitetura daemonless do Podman. Os containers do Podman sempre foram sem raiz, enquanto o Docker acabou de adicionar um modo sem raiz à sua configuração de daemons. Docker é uma ferramenta completa para a criação e o gerenciamento de containers, enquanto o Podman e suas ferramentas associadas, como Buildah e Skopeo, são mais especializadas para aspectos específicos de conteinerização. Isso possibilita personalizar seus ambientes apenas com as ferramentas necessárias.

O Podman é uma alternativa potente ao Docker, mas os dois também podem trabalhar juntos. Os usuários podem alternar facilmente entre eles criando um alias de Docker para Podman (alias docker = podman) e vice-versa. Além disso, um rpm chamado podman-docker pode deixar um comando "docker" no caminho da aplicação do sistema, que aciona o Podman para os ambientes onde esse comando é necessário, facilitando a transição do Docker. A CLI do Podman é semelhante à do Docker, então os usuários que conhecem uma delas têm maior probabilidade de sucesso com a outra.

Alguns desenvolvedores combinam o Podman e o Docker, com o Docker sendo usado na fase de desenvolvimento e transferindo o programa ao Podman em ambientes de runtime.

O Podman é mais adequado para desenvolvedores que executam containers sem o Kubernetes ou o Red Hat OpenShift Container Platform. Os desenvolvedores podem usar o mecanismo de containers impulsionado pela comunidade open source, o CRI-O, para a orquestração de container Kubernetes.

Assista a este vídeo sobre containers rootless com o Podman

O Podman alterou o cenário de containers oferecendo os mesmos recursos de alto desempenho que as principais plataformas de container, mas com flexibilidade, acessibilidade e funcionalidades de segurança que muitas equipes de desenvolvimento buscam. O Podman ajuda você a:

  • Gerenciar imagens de container e todo o ciclo de vida de containers, incluindo containers de execução, redes, pontos de verificação e remoção.
  • Executar e isolar recursos para containers e pods rootless.
  • Oferecer suporte a imagens OCI e Docker, além de uma CLI compatível com o Docker.
  • Criar um ambiente sem daemons, para melhorar a segurança e reduzir o consumo de recursos ociosos.
  • Implantar uma API REST para viabilizar a funcionalidade avançada do Podman.
  • Implementar a funcionalidade de ponto de verificação/restauração para containers Linux com ponto de verificação/restauração no espaço do usuário (CRIU). O CRIU pode congelar um container em execução e salvar o conteúdo e o estado da memória dele em um disco. Assim, as cargas de trabalho em containers podem ser reiniciadas mais rápido.
  • Atualizar containers automaticamente. O Podman detecta se um container atualizado falha ao iniciar e reverte automaticamente para a última versão de trabalho. Dessa forma, há novos níveis de confiabilidade para as aplicações. 
 

O Podman está incluído na subscrição do Red Hat Enterprise Linux. Assim, você pode executar containers em conformidade com a OCI desenvolvidos usando uma imagem base universal (UBI) confiável, compatível e segura. O Red Hat Enterprise Linux é a solução padrão para executar containers Linux em ambientes empresariais. Ele permite que os desenvolvedores executem os containers, gerenciem a implantação e acelerem o desenvolvimento de novas aplicações. O upgrade da infraestrutura do Red Hat Enterprise Linux prepara você para aproveitar todos esses benefícios. Com aplicações portáteis e containers criados no Red Hat Enterprise Linux e implantados em ambientes de nuvem híbrida aberta, sua empresa mantém a agilidade e continua a se transformar conforme as metas evoluem.

O console web do Red Hat Enterprise Linux simplifica a implantação e administração diária de seus sistemas com uma interface web fácil de usar. O Podman está disponível como um componente do console web para ajudar você a gerenciar containers e imagens. Monitore a quantidade de CPU e memória que seus containers usam acessando hosts e monitorando as cargas do sistema no dashboard do console web. O console web também permite simplificar tarefas comuns e operações complexas para otimizar o gerenciamento de containers.

Usando Ansible Playbooks, o Red Hat Ansible® Automation Platform permite automatizar as funções do Podman, como instalação, implantação de containers e outras tarefas que costumam consumir tempo e recursos.

O Podman, Podman Desktop e outras ferramentas de container baseadas em padrões abertos tornam o Red Hat Enterprise Linux um host de containers potente que entrega funcionalidades de suporte a nível de produção, estabilidade e segurança, bem como um caminho para o Kubernetes e o Red Hat OpenShift.

Faça o download do e-book sobre Universal Base Image

Blog da Red Hat

Tudo relacionado à Red Hat: soluções, treinamentos e certificações Red Hat, casos de sucesso de clientes, novidades dos nossos parceiros e notícias sobre projetos das comunidades open source.

Teste as soluções Red Hat gratuitamente

Experimente as soluções Red Hat: ganhe experiência prática, prepare-se para exames de certificação e avalie a viabilidade das soluções para sua empresa em um ambiente real e sem gastar nada.

Leia mais

O que é Docker e como ele funciona?

Docker é uma tecnologia de conteinerização open source projetada para desenvolvedores e usada para empacotar, entregar e executar aplicações em containers Linux.

Diferenças entre Ansible e Puppet: o que você precisa saber

Ansible e Puppet são ferramentas de automação de TI criadas pela comunidade open source. Neste artigo você vai conhecer todas as semelhanças e diferenças entre elas.

Ansible e Salt: o que você precisa saber

Ansible e Salt são ferramentas open source para automação de TI. Neste artigo, você descobrirá as semelhanças e diferenças entre as duas.

Open source: conteúdo adicional

Artigos relacionados