Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
January 28, 2022 12:26 pm GMT

WSL2 Podman: Uma alternativa ao Docker Desktop

Dia 31/01/2022 o Docker desktop passar a ser pago para empresas com mais de 250 funcionrios ou com faturamento a partir de 10 milhes de dlares anuais. Esse comunicado est sendo divulgado desde agosto de 2021 e com ele pensei:

Est na hora de revisitar aqueles links esquecidos no limbo sobre alternativas ao Docker.

Meu objetivo ter uma soluo na parte de execuo de containers, eliminando todo o resto da ferramenta do docker que na mquina de desenvolvimento no utilizo. Em minhas pesquisas a ferramenta que mais se encaixa neste cenrio o podman.

Podman is a daemonless container engine for developing, managing, and running OCI Containers on your Linux System. Containers can either be run as root or in rootless mode.
Fonte: https://podman.io/

Lendo a definio do que o Podman, encontramos o primeiro problema: ele roda somente em Linux e eu uso o Windows. At existe um instalador para Windows, porm ele um client para acessar o podman instalado em algum lugar e no a ferramenta em si.

WLS2 + Podman =

Por sorte e viso da nossa amada e odiada Microsoft, no precisamos mais subir uma VM e realizar toda a configurao necessria para rodar o Linux, podemos usar o WSL2.
No prprio site do podman existe o link do post que ensina como instalar a aplicao no WSL2. Vou seguir este post e acrescentar algumas observaes e passos extras que precisei fazer para ter tudo rodando 100%.

Configurando o WLS2

Etapa opcional. Se est tudo certo na parte de configurao do WSL2, pode ir direto para a instalao do Podman.

O primeiro passo habilitar o WSL no Windows e ativar o WSL2.
Com o WSL2 habilitado e a distro instalada (estou utilizando o Ubuntu 20.04), vamos verificar se a distro esta no formato WSL2 rodando o comando:

wsl --list -v

O resultado ser semelhante ao que segue:

  NAME                   STATE           VERSION* Ubuntu                 Stopped         2  docker-desktop         Stopped         2  docker-desktop-data    Stopped         2

Caso a verso da distro no esteja na 2, necessrio rodar o prximo comando:

wsl --set-version Ubuntu 2

Instalando o Podman

Com o WSL2 configurado vamos iniciar a instalao do Podman.
O primeiro passo descobrir qual o nome e a verso da sua distro. Dentro do shell da distro execute o comando

cat /etc/os-release

Ele deve retornar algo parecido com as informaes abaixo:

NAME="Ubuntu"VERSION="20.04.2 LTS (Focal Fossa)"ID=ubuntuID_LIKE=debianPRETTY_NAME="Ubuntu 20.04.2 LTS"VERSION_ID="20.04"HOME_URL="https://www.ubuntu.com/"SUPPORT_URL="https://help.ubuntu.com/"BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"VERSION_CODENAME=focalUBUNTU_CODENAME=focal

Alternativamente voc pode importar esse arquivo direto para as variveis de ambiente com o comando:

. /etc/os-release

O comando acima facilitar os prximos passos e por isso vou us-lo.
O prximo passo adicionar o repositrio do podman na lista de fontes do apt:

echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/x${NAME}_${VERSION_ID}/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list

Aqui vale uma explicao de alguns pontos do comando que estamos executando:

  • sudo tee: Pega o valor informado no stdin (nesse caso a instruo anterior) e grava no arquivo de destino informado.

Agora adicionamos uma nova chave ao apt para o repositrio que contm o podman:

curl -L "https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/x${NAME}_${VERSION_ID}/Release.key" | sudo apt-key add -

Explicando:

  • curl: Efetua uma chamada http para o endereo informado
  • *sudo apt-key add - *: Adiciona a chave retornada no stdin a lista do apt-key

Feito! Agora basta atualizar a lista do apt:

sudo apt-get update

E instalar o podman:

sudo apt-get install -y podman

Testando

A parte mais legal ver os containers funcionando. Vamos comear por algo simples:

podman run --rm hello-world

Este exemplo o mesmo exemplo de hello world do docker porm utilizando o podman

A sada deve ser algo assim:

Hello from Docker!This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.    (amd64) 3. The Docker daemon created a new container from that image which runs the    executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it    to your terminal.To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID: https://hub.docker.com/For more examples and ideas, visit: https://docs.docker.com/get-started/

Como prximo teste, vamos buildar uma imagem nova e coloc-la para rodar. Para isso vamos usar o repositrio do post que contm um CRUD simples em node.
Uma vez baixado o repositrio, vamos buildar a imagem.
Execute o comando abaixo:

podman build -t juridico -f dockerfile.multistaging .

Com a imagem pronta, chegou a hora de executar o container:

 podman run --rm -p 3001:3001 localhost/juridico

Executando o comando curl http://localhost:3001/95069158262525, temos o seguinte resultado:

{    "numero": "95069158262525",    "uf_sigla": "PR",    "cidade": "Mendoza",    "reu": "Kaitlin Scutter",    "identidade": "33925502749086",    "cliente": "Cherlyn Floyed",    "status": "Ativo"}

Concluso e Prximos Passos

O Podman me surpreendeu pela simplicidade de uso e semelhana com os comandos de Docker. Todos os comandos do docker que uso no dia-a-dia podem ser facilmente utilizados no podman. Inclusive o prprio site do podman ensina a criar um alias para docker. Outro ponto admirvel a transparencia no mapeamento das portas do WSL para a mquina host. No necessrio realizar qualquer configurao adicional s mapear as portas e pronto.

O prximo passo colocar o Kubernetes para rodar utilizando o podman como container engine.

Referencias


Original Link: https://dev.to/poveda/wsl2-podman-uma-alternativa-ao-docker-desktop-5cd6

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To