Adeus Docker, Olá CRIO e Podman Link to heading

Docker foi uma ferramenta divisora de aguas para auxiliar na transição de workloads baseados em VM para workloads baseados em containers, quem acompanhou desde o começo sabe o tanto de dor de cabeça que o docker podia proporcionar em produção, principalmente epoca do aufs. Hoje em dia existem varias alternativas ao Docker na hora de implementar container, graças a Open Container Iniative.

No RHEL8 e Centos8 a versão recomendada para executar workloads em container é o podman que utiliza o cri-o como container runtime.

Para instalar nós vamos executar o seguinte comando:

# yum install podman buildah

O pacote do podman e todas as suas depencias estão presentes nos repositorios base do Centos.

Após instalar o pacote já podemos testar o comando, a syntax é parecida com a do Docker:

$ podman pull fedora

Trying to pull registry.redhat.io/fedora:latest...Failed
Trying to pull quay.io/fedora:latest...Failed
Trying to pull docker.io/fedora:latest...Getting image source signatures
Copying blob fd2e8b5b2254: 66.15 MiB / 66.15 MiB [==========================] 9s
Copying config ef49352c9c21: 1.99 KiB / 1.99 KiB [==========================] 0s
Writing manifest to image destination
Storing signatures
ef49352c9c21ca58ce753fd0b5dda645492236cec4213ac31ee47c35f2e91b1c

Agora podemos rodar a container:

$ podman run -ti fedora

[root@9cc3fc2da354 /]# cat /etc/redhat-release 
Fedora release 30 (Thirty)

Utilizando Dockerfiles com o podman e buildah Link to heading

Para construir imagens para utilizar no podman, nós vamos utilizar o Buildah, que é outra ferramenta que vem junto com a instalação do podman. Ela será responsavel por ler o Dockerfile e construir a imagem.

Vamos utilizar esse reposotirio como base, já que ele possui um Dockerfile funcional, https://gitlab.com/odilonjunior/post-ci-cd.

git clone https://gitlab.com/odilonjunior/post-ci-cd && cd post-ci-cd

Podemos já construir a imagem com o Buildah:

$ buildah bud -t post-ci-cd:buildah .

$ buildah images post-ci-cd
REPOSITORY             TAG       IMAGE ID       CREATED         SIZE
localhost/post-ci-cd   buildah   ce3a1312ba53   7 seconds ago   123 MB

Podemos utilizar o podman tambem para construir as imagens:

$ podman build -t post-ci-cd:podman .

$ podman images post-ci-cd:podman
REPOSITORY             TAG       IMAGE ID       CREATED         SIZE
localhost/post-ci-cd   podman    e76806aabb9d   2 weeks ago     123 MB

Docker foi importante, mas chegou a hora de dizer adeus.