De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 9 de agosto de 2026
Os contêineres estão presentes em servidores, ambientes de desenvolvimento, serviços de nuvem e sistemas Linux modernos. Eles permitem executar aplicações com suas bibliotecas e dependências em ambientes isolados, reduzindo problemas de compatibilidade e facilitando a reprodução da mesma configuração em computadores diferentes.
Para quem está começando, palavras como imagem, contêiner, volume e registro podem fazer o assunto parecer mais complexo do que realmente é. Neste primeiro artigo da série conheceremos os conceitos fundamentais, instalaremos o Podman e executaremos nossos primeiros contêineres.
Todos os exemplos foram preparados para serem executados por um usuário comum, sem sudo, sempre que possível.
Podman é uma ferramenta livre para criar, executar e administrar contêineres, imagens, volumes, redes e pods. Seu nome vem de Pod Manager, pois ele também pode agrupar vários contêineres em uma estrutura chamada pod, semelhante àquela utilizada pelo Kubernetes.
A sintaxe dos comandos é bastante parecida com a do Docker. Quem já conhece comandos como docker run, docker ps e docker images encontrará equivalentes diretos:
podman run
podman ps
podman images
Uma característica importante do Podman é que ele não depende de um daemon central permanentemente em execução. Ele também foi projetado para trabalhar no modo rootless, no qual os contêineres são executados pelo usuário comum.
Um contêiner é um ambiente isolado no qual uma aplicação pode ser executada com os arquivos, bibliotecas e configurações de que necessita.
Considere um servidor web que depende de determinada versão de uma biblioteca. Se essa aplicação for instalada diretamente no computador, sua biblioteca poderá entrar em conflito com outro programa. Ao executar o servidor em um contêiner, suas dependências ficam dentro de um ambiente próprio.
Um contêiner compartilha o kernel Linux do computador hospedeiro. Por isso, costuma iniciar rapidamente e consumir menos recursos que uma máquina virtual completa.
| Máquina virtual | Contêiner |
|---|---|
| Possui seu próprio kernel | Compartilha o kernel do hospedeiro |
| Executa um sistema operacional completo | Executa principalmente a aplicação e suas dependências |
| Geralmente consome mais memória e espaço | Geralmente é mais leve |
| Pode executar outro tipo de sistema operacional | Depende dos recursos oferecidos pelo kernel hospedeiro |
| Oferece isolamento por virtualização | Oferece isolamento por recursos do kernel |
Contêineres e máquinas virtuais atendem a necessidades diferentes. Em muitos ambientes, os contêineres são inclusive executados dentro de máquinas virtuais.
Uma imagem é um modelo usado para criar contêineres. Ela contém o sistema de arquivos básico, as bibliotecas, a aplicação e instruções sobre como essa aplicação deverá ser iniciada.
O contêiner é uma instância criada a partir da imagem. Podemos comparar uma imagem a uma receita e o contêiner ao prato preparado. A mesma imagem pode dar origem a vários contêineres independentes.
Quando executamos:
$ podman run docker.io/library/alpine:latest
estamos pedindo ao Podman que localize a imagem do Alpine Linux e crie um contêiner a partir dela.
O nome completo dessa imagem possui quatro partes:
docker.io/library/alpine:latest
| Parte | Significado |
|---|---|
docker.io |
Registro onde a imagem está armazenada |
library |
Organização ou espaço de nomes |
alpine |
Nome da imagem |
latest |
Etiqueta que identifica a versão |
Um registro é um serviço usado para armazenar e distribuir imagens. Docker Hub, Quay.io e os registros mantidos pelas distribuições Linux são alguns exemplos.
É recomendável informar o nome completo da imagem, incluindo o registro. Essa prática evita ambiguidades e indica claramente de onde o conteúdo será baixado.
O Podman está disponível nos repositórios das principais distribuições Linux.
No Fedora:
$ sudo dnf install podman
No Debian e no Ubuntu:
$ sudo apt update $ sudo apt install podman
No openSUSE:
$ sudo zypper install podman
No Arch Linux e no Manjaro:
$ sudo pacman -S podman
Nas edições Fedora Silverblue e Fedora Kinoite, o Podman normalmente já está instalado.
Depois da instalação, verifique a versão:
$ podman --version
Para obter informações detalhadas sobre o ambiente:
$ podman info
Esse comando mostra o mecanismo de armazenamento, o runtime utilizado, a configuração de rede e outros dados.
Vamos utilizar a imagem do Alpine, uma distribuição Linux minimalista muito usada em contêineres.
Execute:
$ podman run --rm docker.io/library/alpine:latest \
echo "Meu primeiro contêiner está funcionando"
Meu primeiro contêiner está funcionando
Na primeira execução, o Podman perceberá que a imagem ainda não existe localmente e fará seu download. Em seguida, criará um contêiner e executará o comando echo dentro dele.
A opção --rm determina que o contêiner seja removido automaticamente depois que o comando terminar. A imagem baixada permanece armazenada e poderá ser reutilizada.
A sequência de acontecimentos é a seguinte:
--rm.
Também podemos abrir um shell dentro do contêiner:
$ podman run --rm -it docker.io/library/alpine:latest /bin/sh
As opções utilizadas são:
| Opção | Função |
|---|---|
-i |
Mantém a entrada padrão aberta |
-t |
Cria um terminal |
--rm |
Remove o contêiner quando ele terminar |
/bin/sh |
Comando executado dentro do contêiner |
Depois da execução, o prompt será semelhante a "/ #"
Agora estamos dentro do contêiner. Podemos verificar qual sistema operacional está sendo utilizado:
$ cat /etc/os-release
Também podemos listar os processos com o comando "ps" e observar o sistema de arquivos com o comando "ls /".
Para sair digite exit.
O contêiner será encerrado e removido. Qualquer arquivo criado dentro dele também desaparecerá, pois utilizamos --rm e ainda não configuramos armazenamento persistente.
O Podman possui uma ajuda integrada:
$ podman --help
Cada subcomando apresenta suas próprias opções:
$ podman run --help $ podman images --help $ podman ps --help
Também podemos consultar as páginas de manual:
$ man podman $ man podman-run
Neste primeiro contato, aprendemos que uma imagem funciona como um modelo e que um contêiner é uma instância criada a partir dela. Também instalamos o Podman, executamos nosso primeiro comando isolado e abrimos uma sessão interativa no Alpine Linux.
No próximo artigo, usaremos esses conhecimentos para executar e administrar um servidor web completo.