O que é Podman?

Copiar URL

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® junto com a comunidade open source, o Podman gerencia todo o ecossistema de containers usando a biblioteca libpod. 

O Podman sem daemon e a arquitetura inclusiva 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 se adequarem à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 que são executados juntos e 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), projetados para cumprir com os padrões do setor para formatos e runtimes de containers. Mais recursos de criação avançados estão disponíveis no projeto relacionado, Buildah.

Cada pod é composto por um infracontainer e qualquer quantidade de containers regulares. O infracontainer mantém o pod em execução e os namespaces do usuário, que isolam 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.

Recursos 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. Eles são a comunicação intermediária entre o usuário e o próprio container.

Embora daemons possam ser convenientes para gerenciar seu ambiente de container, eles também podem apresentar vulnerabilidades de segurança. Muitos daemons são executados com privilégios raiz. Em sistemas Linux, a conta raiz 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. Sem raiz, os usuários podem criar, executar e gerenciar containers sem exigir processos com privilégios de administrador, tornando seu ambiente de containers mais acessível e reduzindo riscos de segurança. Além disso, o Podman inicia cada container com um rótulo de Security-Enhanced Linux (SELinux), dando aos administradores mais controle sobre quais recursos são disponibilizados para os processos de container.

Os usuários podem invocar o Podman a partir da linha de comando para extrair containers de um repositório e executá-los. A ferramenta aciona o ambiente de execução de containers 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ê gera unidades de controle para seus containers e as executa com o systemd habilitado 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 conjuntos separados de containers e imagens e que ele possa usar o Podman de maneira simultânea no mesmo host sem um interferir no outro. 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 acionar o Podman a partir de plataformas como cURL, Postman, Advanced REST client do Google e muitas outras.

Experimente essas cinco funcionalidades do Podman agora

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 criar 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®.

O Podman é um mecanismo de container modular, então deve trabalhar junto com ferramentas como Buildah e Skopeo para criar e mover seus containers. Com o Buildah, você cria 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 criar e executar uma imagem ou executar imagens com o formato docker. Esta ferramenta baseada em linguagem, Go, lê uma especificação do ambiente de execução, configura o kernel do Linux e, eventualmente, cria e inicia processos de container. Com algumas mudanças de configuração, você também pode usar o Podman com outros recursos, como crun.

Crie containers UBI no GitHub Actions com Buildah e Podman

Docker é uma tecnologia de conteinerização que permite criar e usar containers Linux. A principal diferença entre Podman e Docker é a arquitetura sem daemons 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 facilmente alternar entre eles criando um alias entre o Docker e o 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 sem raiz com 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 pods e containers sem raiz.
  • Dar suporte a imagens OCI e do Docker, bem como 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 dar suporte à 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 os conteúdos e estados da memória em um disco. Dessa forma, cargas de trabalho em containers podem ser reiniciadas com mais rapidez.
  • Atualize containers automaticamente. O Podman detecta se um container atualizado falhou na inicialização e volta automaticamente à última versão de trabalho. Isso oferece novos níveis de confiabilidade às aplicações. 

Veja este cenário de tutorial para praticar com o Podman

O Podman está incluso na subscrição do Red Hat Enterprise Linux. Dessa forma, você pode executar containers em conformidade com OCI criados usando uma imagem base universal (UBI) confiável, compatível e de confiança. O Red Hat Enterprise Linux é um 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 em ambientes de nuvem híbrida aberta, sua empresa se mantém ágil e continua se transformando conforme seus objetivos 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 que você simplifique 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 ebook sobre Universal Base Image

Hub

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 da Red Hat

Você sabia que a Red Hat oferece versões de teste gratuitas de suas soluções? Aproveite e obtenha experiência prática, prepare-se para uma certificação da Red Hat ou avalie na prática se a solução é adequada para ao caso de uso.

Leia mais

O que é o Podman Desktop?

O Podman Desktop é uma ferramenta open source gratuita que simplifica o trabalho com containers em ambientes de desenvolvedor locais.

O que é o Helm?

Helm é um gerenciador de pacotes para Kubernetes que inclui todos os códigos e recursos necessários para implantar uma aplicação em um cluster.

O que é o InstructLab?

O InstructLab é um projeto open source para aprimorar os modelos de linguagem de larga escala ou Large Language Models (LLMs).

Open source: leitura recomendada

Artigos relacionados