Publicado por Sysadmin Urbano | Infraestrutura, SysOps e DevOps
Um guia prático para quem vive na linha de frente da operação de sistemas.
Usando Podman e Podman Compose com Imagens do Harbor: Configurações, Alternativas e Boas Práticas
Introdução
Em ambientes modernos de DevOps e infraestrutura como código, o uso de containers é central para isolar serviços, distribuir aplicações e garantir portabilidade. Enquanto o Docker é amplamente conhecido, o Podman tem se consolidado como uma alternativa sólida e mais segura. Ele elimina o daemon, permite execução rootless e segue o padrão OCI.
Neste artigo, vamos integrar o Harbor (registry privado de containers) com o Podman, abordando duas abordagens distintas:
- Uso direto com o Podman
- Gerenciamento orquestrado com o Podman Compose
Além disso, vamos configurar corretamente o uso de registries privados (com ou sem TLS), ajustar permissões, discutir boas práticas e entender quando usar cada modelo.
1. Instalando o Podman
RHEL / Oracle Linux / CentOS
sudo dnf install -y podmanUbuntu / Debian
sudo apt update
sudo apt install -y podmanVerifique a instalação:
podman --version2. Configurando acesso ao Harbor
Faça login (se necessário):
podman login harbor.seuservidor.com2.1 Usando registries sem HTTPS (HTTP)
sudo mkdir -p /etc/containers/registries.conf.d
sudo nano /etc/containers/registries.conf.d/harbor.confAdicione:
[[registry]]
prefix = "harbor.seuservidor.com"
location = "harbor.seuservidor.com"
insecure = true3. Puxando e rodando imagens do Harbor com Podman
podman pull harbor.seuservidor.com/devops/nginx-custom:1.0podman run -d --name webapp \
-p 8080:80 \
harbor.seuservidor.com/devops/nginx-custom:1.0-d: executa o container em segundo plano (detached mode)--name: define um nome identificável para o container-p 8080:80: expõe a porta 80 do container na porta 8080 do host
Verificando a execução
podman psIsso mostrará todos os containers em execução, com ID, nome e portas mapeadas.
Acessando o serviço
Se o container oferece uma API ou serviço web, você pode testá-lo com:
curl http://localhost:8080Ou acessando diretamente pelo navegador: http://localhost:8080
4. Alternativa: Usando Podman Compose
Para projetos com múltiplos serviços:
4.1 Instalação
pip install podman-composepython3 -m venv venv
source venv/bin/activate
pip install podman-compose5. Estrutura de Projeto
meu-app/
├── docker-compose.yml
└── .env (opcional)
Exemplo de docker-compose.yml
version: "3"
services:
web:
image: harbor.seuservidor.com/devops/nginx-custom:1.0
ports:
- "8080:80"
restart: always6. Subindo os serviços
podman-compose up -dpodman-compose logspodman pspodman-compose down7. Comparativo: Podman direto vs Podman Compose
| Critério | Podman (direto) | Podman Compose |
|---|---|---|
| Complexidade | Baixa | Média |
| Multi-serviços | Manual | Gerenciado via YAML |
| Escalabilidade | Limitada | Modular |
| Controle de rede | Simples | Mais granular |
| Ideal para | Containers isolados | Projetos multi-serviço |
8. Boas práticas
- Armazene as credenciais com segurança.
- Evite usar a tag
latestem produção. - Use versões fixas para garantir reprodutibilidade.
- Crie redes próprias para isolar serviços:
podman network create meu_redeConclusão
Integrar o Harbor com Podman (com ou sem Compose) permite controle total sobre suas imagens, com mais segurança e independência do Docker daemon. O Podman direto é ideal para containers rápidos e isolados, enquanto o Compose se destaca em ambientes mais complexos.
Nos próximos capítulos, vamos explorar volumes persistentes, redes customizadas e estratégias de deploy em produção.

Nenhum comentário:
Postar um comentário