O que é podman e quão difere do Docker?

O Podman é um mecanismo de contêiner compatível com a especificação OCI Containers. O Podman faz parte do RedHat Linux, mas também pode ser instalado em outras distribuições.

Por ser compatível com OCI, o Podman pode ser usado como substituto do tempo de execução do Docker mais popular. A maioria dos comandos do Docker pode ser traduzida diretamente em comandos do Podman.

O seguinte mostra como os dois tempos de execução são acumulados.

índice

  1. O que é um tempo de execução?
  2. Como instalar o podman
  3. Trabalhar com contêineres e imagens
  4. O que há de diferente no Podman?
  5. vagens
  6. contêineres sem raiz
  7. Conclusão

O que é um tempo de execução?

Para muitas pessoas, um "contêiner" ainda é um "contêiner do Docker". Esta não é uma representação precisa do atual ecossistema de contêineres. O Docker produz imagens de contêiner OCI, que podem ser usadas com outros tempos de execução compatíveis. O Kubernetes é um exemplo, enquanto o Podman é outro.

Como resultado, o Podman e o Docker têm funcionalidades principais sobrepostas. Ambos produzem imagens que o outro pode usar para executar contêineres. Os dois tempos de execução adicionam suas próprias especializações aos principais recursos de conteinerização.

Como instalar o podman

Se você estiver usando o RedHat Linux, o Podman está na área de armazenamento extras . Use subscription-manager para adicionar o depósito. Então você pode usar o yum para instalar o Podman.

 su - repositórios do gerenciador de assinaturas --enable rhel-7-server-extras-beta-rpms yum -y install podman

A maioria das outras distribuições Linux populares também inclui o Podman em seus repositórios padrão. você pode apt install podman , dnf install podman ou pacman -S podman para instalá-lo.

Trabalhar com contêineres e imagens

A CLI do Podman está deliberadamente alinhada com a do Docker. Isso significa que você pode usar comandos familiares do Docker para interagir com contêineres do Podman:

 podman pull my-image:latest podman run my-image:latest --name my-container podman ps podman rm my-container

O Podman deve ser imediatamente familiar aos usuários do Docker. Você pode alias docker para podman e não notar uma diferença no uso diário. Obviamente, nem todos os recursos estão disponíveis, no entanto, tentar usar os comandos do Docker Swarm gerará um erro, pois o Podman não tem nada equivalente ao Swarm.

O que há de diferente no Podman?

Embora semelhante ao Docker, o Podman tem algumas diferenças distintas. O primeiro e provavelmente o mais significativo é a sua arquitetura. O Podman não tem daemon Não há um processo de longa execução para gerenciar contêineres.

Ao executar o comando podman , você está interagindo diretamente com o processo que inicia seus contêineres e recupera suas imagens. A CLI do Docker depende de uma conexão com o daemon do Docker. A CLI envia comandos para o daemon e o daemon atua neles para criar contêineres.

O modelo de Podman ajuda a resolver algumas das preocupações de segurança do Docker. A falta de um daemon reduz bastante a superfície de ataque do contêiner. Se você precisar de acesso remoto, o Podman expõe uma API REST que permite interagir com todos os tipos de recursos compatíveis.

vagens

O Podman vem com recursos exclusivos que o Docker não possui. No Podman, os contêineres podem formar "pods" que funcionam juntos. É semelhante ao conceito do Kubernetes Pod.

Para criar um pod, use o comando pod create :

 podman pod criar --name meu-pod

Os contêineres são adicionados aos pods, incluindo o sinalizador --pod com podman run :

 podman run --pod my-pod --name image-1 my-image:latest podman run --pod my-pod --name image-2 another-image:latest

Os contêineres no pod podem ser gerenciados juntos para usar os comandos podman pod :

 podman kill my-pod # Mata todos os containers podman restart my-pod # Reinicia todos os containers podman stop my-pod # Para todos os containers

O conceito de Pod é poderoso, pois permite gerenciar vários contêineres de maneira agregada. Você pode criar contêineres de aplicativos, como front-end, back-end e banco de dados, adicioná-los a um pod e gerenciá-los em uníssono.

O Docker mais próximo disso é o Compose. Usar o Compose requer escrever o arquivo docker-compose.yml e usar o binário docker-compose . O Podman permite criar Pods usando um comando sem sair do terminal.

Quando uma definição de pod precisa ser exportada, o Podman produzirá um manifesto YAML compatível com Kubernetes. Você pode pegar o manifesto e aplicá-lo diretamente a um cluster Kubernetes. Isso preenche a lacuna entre executar um contêiner em desenvolvimento e liberá-lo para a infraestrutura de produção.

 podman gerar kube

contêineres sem raiz

O Podman oferece suporte a contêineres sem raiz. Isso ajuda a proteger sua segurança impedindo que os contêineres sejam executados como hosts. usuário root . O Docker agora oferece suporte ao modo não raiz como uma opção de configuração do daemon. Podman não tinha raízes antes do Docker e coloca mais ênfase em seu uso.

Primeiro, instale slirp4netns :

 yum instalar slirp4netns

Em seguida, configure vários namespaces de rede de domínio de usuário:

 echo "user.max_user_namespaces=28633" > /etc/sysctl.d/userns.conf sysctl -p /etc/sysctl.d/userns.conf

Este comando habilita o uso de namespaces de rede sem root .

Agora você está pronto para executar um contêiner sem root! Conecte-se ao servidor como um usuário normal. Inicie um novo contêiner com podman run . Ele será criado com o UID de sua conta de usuário em vez de root .

Além de namespaces completamente enraizados, podman é limitado ao usuário atual por padrão. Suas imagens e contêineres são armazenados na pasta $HOME usuário. Ao executar podman ps ou podman images , você verá apenas seu conteúdo em vez de todos os recursos do sistema.

Conclusão

Podman é um tempo de execução de contêiner compatível com OCI que funciona sem um daemon. A CLI implementa todos os comandos principais do Docker. Você pode alternar facilmente para o Podman ou usá-lo em conjunto com uma instalação existente do Docker.

Ao contrário do Docker, o Podman tem suporte de primeira classe para gerenciar vários contêineres. O modelo Pod simplifica o trabalho com vários serviços. Você pode parar, reiniciar e remover todos os contêineres associados usando comandos no nível do pod.

O Podman também está pronto para ajudá-lo na transição para serviços de orquestração de contêineres. A capacidade de exportar YAML compatível com Kubernetes torna o Podman mais compatível com muitos ambientes de produção em contêiner. Desenvolvedores e operadores podem usar a mesma ferramenta para gerenciar seus contêineres, permitindo maior colaboração e flexibilidade.

  • Fujifilm confirma que ataque de ransomware interrompeu operações da empresa
  • Malware FreakOut se infiltra em servidores VMware vulneráveis

descubra mais conteúdo

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão Geek

O que é uma carga fantasma?

Deixe uma resposta Cancelar resposta

Quando usar o Docker ou o Kubernetes?

O Docker é uma plataforma de conteinerização e um tempo de execução de contêiner, enquanto o Kubernetes é uma plataforma para executar e gerenciar contêineres de vários tempos de execução de contêiner. O Kubernetes oferece suporte a vários tempos de execução de contêiner, incluindo Docker .

Como instalar o Podman?

Instale o Podman no Windows e MacOS

Se você tiver a capacidade de acessar essa instalação, precisará apenas de um cliente Podman remoto com o qual estabelecer uma conexão SSH com o servidor back-end Podman . As informações sobre a conexão SSH devem ser inseridas no arquivo de configuração Podman -remote.

O que é Docker Python?

O Docker é uma ferramenta projetada para beneficiar tanto desenvolvedores, testadores e administradores de sistemas, em relação às máquinas, aos próprios ambientes onde os aplicativos de software são executados, aos processos de implantação, etc.

Ir arriba