Utilizando Containers com Podman! Alternativa ao Docker.

Filipe Alves
Linux & World Open-Source
4 min readMar 8, 2020

O que é ?

Podman é uma ferramenta multiplataforma de linha de comando, Open-Source, que permite criar e gerenciar imagens de contêiner diretamente, sob licença Apache-2.0. Desenvolvido inicialmente no projeto Atomic, do Fedora Atomic Host (Red Hat), o Podman agora é mantido pela containers organization. Disponibilizado também nos repositórios do Red Hat Enterprise Linux, Fedora e CentOS.

This article in video.

Um dos maiores diferenciais do Podman é que ele não precisa de um serviço (daemon-less) rodando em background para funcionar, e é totalmente Gratuito e Open-Source. É uma alternativa amigável para quem já esta acostumado com Docker, já que é baseado na CLI do Docker, tendo compatibilidade com as imagens Docker e suportando tambem Dockerfile’s e sendo possível ate rodar docker-compose.yml com podman-compose.

Arquitetura Podman.
Arquitetura do Podman.

Como utilizar ?

Para instalar, acesse esse link e siga as instruções de acordo com seu S.O.

No caso do Fedora, execute:

sudo dnf install podman

Agora vamos baixar um container como exemplo, vamos usar o nginx:

sudo podman pull nginx

Saida:

Trying to pull docker.io/library/nginx...
Getting image source signatures
Copying blob 68ced04f60ab done
Copying blob a616aa3b0bf2 done
Copying blob 28252775b295 done
Copying config 6678c7c2e5 done
Writing manifest to image destination
Storing signatures
6678c7c2e56c970388f8d5a398aa30f2ab60e85f20165e101053c3d3a11e6663

Para rodar o container do nginx, vamos executar:

sudo podman run --name nginx -d -p 80:80 nginx

Saida:

b7900e7e9858bf02a8afb245c36a863ab4af03b7ddc50a42b0cef0f9c90f7ab6

Acesse no navegador localhost e veja:

Para ver os containers em execução, execute:

sudo podman ps

Saida:

CONTAINER ID  IMAGE                           COMMAND               CREATED        STATUS            PORTS               NAMES
0ccdfb7f3d58 docker.io/library/nginx:latest nginx -g daemon o... 2 minutes ago Up 2 minutes ago 0.0.0.0:80->80/tcp nginx

Para parar o container, execute:

sudo podman stop nginx

Para remover, execute:

sudo podman rm -f nginx

Criando uma imagem personalizada com Dockerfile

Crie um arquivo chamado Dockerfile, com o seguinte conteudo:

FROM fedora:latestRUN dnf -y update && dnf -y install httpd git  && dnf clean allRUN echo "<html><body><h1>Dockerfile with Podman</h1><p>Hello World!</p></body></html>" > /var/www/html/index.htmlEXPOSE 80ENTRYPOINT /usr/sbin/httpd -DFOREGROUND

e para fazer o build, execute:

sudo podman build --tag fedora:myhttpd -f ./Dockerfile

para verificar suas imagens, execute:

sudo podman images

Saida:

REPOSITORY                 TAG       IMAGE ID       CREATED          SIZE
localhost/fedora myhttpd 94856e199b7d 26 seconds ago 385 MB
docker.io/library/nginx latest 6678c7c2e56c 4 days ago 131 MB
docker.io/library/fedora latest 536f3995adeb 2 weeks ago 200 MB

Agora vamos testar nossa imagem:

sudo podman run -p 8080:80 --name myhttpd --rm fedora:myhttpd

Resultado, Acesse no navegador localhost:8080:

Apache on fedora container.

Para remover a imagem, execute:

sudo podman rmi fedora:myhttpd

Tambem existe um Dashboard para Gerenciamento do podman, o Cockpit.

Cockpit-Podman.

Guia de instalação aqui.

Vou ficando por aqui, ate a proxima galera!

Links uteis:

--

--