Pesquisa de site

Coloque o podman em funcionamento no Windows usando Linux


Permita que convidados do WSL 2 executem os comandos podman, skopeo ou buildah no Windows usando a distribuição Linux de sua escolha.

WSL 2, a segunda iteração do subsistema Windows para Linux, permite executar um ambiente Linux nativamente no Windows, sem a sobrecarga de uma máquina virtual (VM). Ele também se integra perfeitamente ao Windows e fornece acesso à maioria das ferramentas de linha de comando, utilitários e aplicativos com os quais você está acostumado no Linux.

Este guia mostra como permitir que convidados do WSL 2 executem os comandos podman, skopeo ou buildah no Windows usando a distribuição Linux do seu escolha (disponível na loja da Microsoft). Vindo de um ponto de partida do sistema operacional host Fedora Linux, fiquei curioso para saber como habilitar e usar as ferramentas com as quais estou mais familiarizado no Windows.

Pré-requisito: WSL 2

Para instalar o WSL 2, acesse a página de instalação do WSL.

Use o Powershell para garantir que o WSL 2 esteja habilitado por padrão:

PS> wsl –set-default-versão 2

Para obter informações sobre as principais diferenças entre WSL 1 e WSL 2, consulte a documentação do WSL.

O subsistema Windows para Linux já percorreu um longo caminho. A Microsoft tem trabalhado muito para tornar a separação entre o sistema operacional Windows host e o sistema operacional Linux convidado praticamente invisível. Drivers especiais nos kernels de cada sistema facilitam a execução de comandos entre vários shells e janelas de comando e permitem o acesso mútuo ao sistema de arquivos.

Você pode confirmar se está usando corretamente o kernel WSL 2 com o seguinte comando e saída em qualquer um dos convidados:

$ uname -a
Linux BLD 5.10.16.3-microsoft.standard-WSL2 #1 SMP Fri Apr 2 22:23:49 
UTC 2021 x86_64 x86_64 GNU/Linux

Convidados do WSL 1 relatam uma versão do kernel como 4.14 ou similar.

Pequenos detalhes em seus convidados podem tornar a integração ainda mais perfeita, incluindo links simbólicos de vários arquivos do diretório inicial (.aws, .sh, .config e assim por diante). Há uma dica de como isso pode ser feito diretamente no diretório $HOME:

(Stephen Cuppett, < font color="#1155cc">CC BY-SA 4.0)

Instale uma distribuição Linux

Para instalar uma distribuição Linux, encontre a sua favorita na Microsoft Store.

(Stephen Cuppett, < font color="#1155cc">CC BY-SA 4.0)

Para este artigo, estou usando o Fedora, mas outras distribuições estão disponíveis para você experimentar. Podman funciona bem em todas as distribuições, então você pode usar qualquer distribuição com a qual esteja mais familiarizado. Pode haver alguns pequenos ajustes de configuração necessários, mas eles geralmente são documentados pela distribuição e pela documentação do podman. Eu escolhi o Fedora porque era a distribuição que não exigia nenhuma configuração extra para fazer o podman mais recente funcionar.

Na primeira inicialização, a VM e as tecnologias relacionadas são instaladas. Você será solicitado a selecionar uma senha para o primeiro usuário (que obtém acesso sudo).

Instalar podman

Depois que sua distribuição Linux tiver sido instalada e configurada com um usuário, você poderá instalar o podman normalmente:

$sudo dnf instalar podman

Depois de alguns momentos, o podman está instalado e pronto para uso. Você pode verificar se tudo está funcionando conforme o esperado:

$ podman info
host:
  arch: amd64
  buildahVersion: 1.22.3
  cgroupControllers: []
  cgroupManager: cgroupfs
  cgroupVersion: v1
[...]
version:
  APIVersion: 3.3.1
  OsArch: linux/amd64
  Version: 3.3.1

A partir daí, você pode criar imagens e usar o podman normalmente.

Graças à integração WSL, o podman é ainda acessível e utilizável no PowerShell ou no prompt de comando:

(Stephen Cuppett, CC BY-SA 4.0)

Instalar e usar os comandos buildah e skopeo é exatamente o mesmo processo.

Teste de caixa ocupada

Como um teste simples para ver o podman em funcionamento, você pode extrair e executar um contêiner Busybox. BusyBox é um projeto de código aberto (GPL) que fornece implementações simples de quase 400 comandos comuns, incluindo ls, mv, ln, mkdir, more, ps, gzip, bzip2, tar e grep, o que o torna um ambiente mínimo adequado para contêineres e para testes simples como este.

Primeiro, pesquise no repositório de imagens padrão um contêiner Busybox. Você pode fazer isso em seu terminal Linux ou no Powershell.

$ podman search busybox
INDEX       NAME                             DESCRIPTION                     
docker.io   docker.io/library/busybox        Busybox base image                  
docker.io   docker.io/radial/busyboxplus     Full-chain...
docker.io   docker.io/yauritux/busybox-curl  Busybox with CURL

Execute aquele que você deseja experimentar:

$ podman run -it docker.io/library/busybox
/ #

Você pode usar o contêiner, executar alguns comandos para verificar se tudo funciona conforme o esperado e depois deixá-lo com o comando exit.

iniciar

Admito que fiquei surpreso com a rapidez com que as distribuições Linux atuais, podman, e o subsistema Windows trabalharam juntos aqui. É óbvio que muito trabalho excelente foi feito nas ferramentas de contêiner do Windows e na integração com o Linux. Tenho esperança de que este guia ajude outras pessoas a chegarem facilmente a esse mesmo ponto de partida e começarem a ser produtivas.

Existem muitos bons candidatos para um acompanhamento profundo, incluindo trabalhar com volumes, expor serviços de rede entre o convidado e o host e expor recursos do Linux nesses contêineres. Com tantas ferramentas disponíveis, tenho grande confiança de que a comunidade fará pouco trabalho para investigá-las!

Artigos relacionados: