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:
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:
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!