Ir para seção

O que é Podman?

Copiar URL

Podman (o gerenciador POD) é uma ferramenta open source usada para desenvolvimento, gerenciamento e execução de containers em sistemas Linux®. Desenvolvido originalmente pelos engenheiros Red Hat® junto com a comunidade open source, o Podman gerencia todo o ecossistema de containers usando a biblioteca libpod. 

A arquitetura inclusiva e sem daemon do Podman é uma opção mais segura e acessível para o gerenciamento de containers. Além disso, suas ferramentas e funcionalidades, como Buildah e Skopeo, permitem que os desenvolvedores personalizem seus ambientes de container para adequá-los às suas necessidades. 

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 meio de uma interface de linha de comando (CLI) simples e pela biblioteca libpod, que oferece APIs para gerenciar containers, pods, imagens de container e volumes. A CLI do Podman cria e dá suporte a containers Open Container Initiative, projetados para cumprir com os padrões do setor para formatos e ambientes de execução de containers, embora recursos de criação mais avançados estejam disponíveis no projeto complementar, o Buildah. Os usuários podem executar o Podman em várias distribuições do Linux, como Red Hat Enterprise Linux, Fedora, CentOs e Ubuntu

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.

O Podman se destaca de outros mecanismos de container porque é uma arquitetura sem daemon. Daemons são processos executados no plano de fundo do seu sistema para realizar o trabalho pesado de executar containers sem uma interface do 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 permite 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ço 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.

Os usuários podem gerenciar seus próprios repositórios no sistema, bem como as unidades do systemd, para controlar o início e o gerenciamento automático de seus próprios containers. Com os usuários podendo gerenciar seus próprios recursos e com seus containers sendo executados sem raiz, práticas não recomendadas são desencorajadas, como tornar o mundo de /var/lib/containers gravável ou outras práticas de gerenciamento de sistema que podem expor aplicações a outros problemas de segurança. 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. A sigla REST significa Representational State Transfer (Transferência Representacional de Estado, em português). API REST é uma interface de programação de aplicações 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.

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. Esta abordagem modular de conteinerização tem como resultado um ambiente flexível e lightweight, reduzindo a sobrecarga e isolando funcionalidades necessárias para alcançar seus objetivos. Ferramentas menores e mais modulares também podem evoluir mais rapidamente e cada ferramenta pode se concentrar em um único objetivo. 

Podman, Buildah e Skopeo são como um conjunto de canivetes suíços especializados que, combinados, podem atender praticamente a todos os casos de uso de containers. O Podman é o maior desses canivetes. 

Por padrão, o Podman e o Buildah usam runC, o ambiente de execução OCI, para iniciar containers. Você pode criar e executar uma imagem ou, com o runC, pode executar imagens com 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.

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 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, o que permite personalizar de acordo com suas necessidades em aplicações nativas em nuvem. 

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 PATH da aplicação do sistema, que aciona o Podman para os ambientes em que esse comando é necessário, facilitando a transição do Docker. A CLI do Podman é semelhante à plataforma de container do Docker, e os usuários que conhecem uma delas tem maior probabilidade de sucesso com a outra. 

Alguns desenvolvedores usam o Podman e o Docker juntos, com o Docker sendo usado na fase de desenvolvimento e transferindo o programa ao Podman em ambientes de execução para aproveitar a maior segurança da plataforma. 

O Podman é mais adequado para desenvolvedores que executam containers sem o Kubernetes ou o OpenShift Container Platform. CRI-O é uma plataforma de container open source e voltada para a comunidade para a orquestração de containers do Kubernetes, como Red Hat OpenShift® Container Platform.

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

  • Gerenciar imagens de container e todo o ciclo de vida de containers, incluindo 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, aumentando a segurança e reduzindo 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 do 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. 

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 é o padrão para a execução de containers Linux em ambientes empresariais, além de permitir que os desenvolvedores girem containers, gerenciem a implantação e acelerem o desenvolvimento de novas aplicações facilmente. Com aplicações portáteis e containers criados no Red Hat Enterprise Linux na nuvem híbrida aberta, você se mantém ágil e cumpre com seus objetivos de transformação à medida que eles 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 painel do console web. Com o console web, você pode simplificar tarefas comuns, assim como em 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 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.

Leitura recomendada

ARTIGO

Containers x máquinas virtuais

Os containers Linux e as máquinas virtuais são ambientes de computação empacotados que combinam vários componentes de TI e os isolam do restante do sistema.

ARTIGO

O que é orquestração de containers?

A orquestração automatiza a implantação, o gerenciamento, a escala e a rede dos containers.

ARTIGO

O que é um container Linux?

Um container Linux é um conjunto de processos isolados do sistema. Esses processos são executados a partir de uma imagem distinta que oferece todos os arquivos necessários a eles.

Leia mais sobre o Red Hat Enterprise Linux

Soluções Red Hat

Uma plataforma estável e comprovada, versátil o suficiente para lançar novas aplicações, virtualizar ambientes e criar uma nuvem híbrida mais segura.

Conteúdo adicional

Qual a melhor subscrição do Red Hat Enterprise Linux para o meu caso?

Leia o guia de subscrições do Red Hat Enterprise Linux e escolha a melhor subscrição para seu caso de uso. Aprenda a gerenciá-la e aproveite ao máximo todos os benefícios oferecidos.

Treinamentos Red Hat

Treinamento gratuito

Red Hat Enterprise Linux Technical Overview