Podman e Docker
O
Podman é muito parecido com o Docker, e podemos criar contêineres no Podman para usarmos com o Docker e vice-versa. De fato, um dos lugares onde o Podman busca por contêineres é no
docker.io. Os comandos utilizados no Podman também são praticamente os mesmos usados no Docker.
Se você usa o Docker, talvez já tenha ouvido falar do Podman.
1. O Podman é executado no mode rootless, ou seja, não precisa de um daemon sendo executado como root.
2. O Podman suporta coisas novas como o cgroupsv2 (disponível no Fedora 31, 32).
3. É difícil manter o Docker (na verdade moby-engine) atualizado no Fedora (que pode se correlacionar com o ponto 2), e as pessoas parecem reclamar disso. Tenho até uma dica sobre isso:
Instalando Docker CE no Fedora 31 [Dica]
O Podman está disponível por padrão no
Fedora-Silverblue e também no
Fedora-Workstation, para fluxos de trabalho baseados em contêiner. Para instalá-lo em qualquer versão do Fedora, basta executar:
# dnf install podman -y
Registries
Os registries são lugares onde o podman busca por contêineres, e eles podem ser vistos no arquivo
/etc/containers/registries.conf, ou com o comando "podman info". Use o arquivo de configurações se quiser adicionar ou remover algum registry. Se for apenas para consultar, use o comando podman info:
# podman info
Buscando por contêineres com o Podman
Usando o comando
podman search posso pesquisar por contêineres:
# podman search fedora
Baixando um contêiner
Vamos usar o comando
podman pull para baixar uma imagem de contêiner para nossa máquina:
# podman pull fedora-minimal
Agora vamos rodar nosso contêiner. Para executar o contêiner em segundo plano, use o comando "podman run -td":
# podman run -td fedora-minimal
Onde o -d executar o contêiner em segundo plano e imprimir o ID do contêiner e o -t ou --tty aloca um pseudo-TTY para o contêiner.
Acessando o contêiner onde podemos entrar no shell do mesmo (bash):
# podman run -ti fedora-minimal /bin/bash
e para sair basta usar o comando "exit".
E para parar um contêiner use o comando "stop" com o id do contêiner:
# podman stop f2177bbd2997
Vamos subir um servidor web simples, no caso um Apache:
# podman pull docker.io/library/httpd
Vamos executar esse contêiner:
# podman run -td -p 80:80 httpd:latest
Onde podemos já ver nosso contêiner rodando e mostrando a porta 80:
# podman ps
e podemos acessar via web onde está funcionando.