Extra Guia de Ferramentas • Trilha Progressiva em 4 Níveis


🎯 Nível 1: Fundamentos

Problema 15.1 — Execução Rootless com Podman

Contexto: Executar um container Nginx utilizando Podman como usuário comum sem privilégios sudo e inspecionar os mapeamentos de UID no Linux.

Resultado Esperado

# Executa sem sudo
podman run -d --name web-rootless -p 8080:8080 nginxinc/nginx-unprivileged:alpine

# Inspeciona processos
podman top web-rootless user huser

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_15_1_SeuNome.sh
  2. Envie na tarefa: Atividade Cap 15 - Podman e Runtimes
🔑 Gabarito de Código & Solução Comentada
podman run -d --name web-rootless -p 8080:8080 nginxinc/nginx-unprivileged:alpine
podman top web-rootless user huser

Comentário: O Podman utiliza User Namespaces mapeando o UID do host para UID 0 virtual dentro do container sem conceder privilégios reais de root.


🎯 Nível 2: Prática

Problema 15.2 — Criação de Pods Locais no Podman (Estilo Kubernetes)

Crie um Pod nomeado backend-pod no Podman compartilhando portas e execute dentro dele um container redis e um container de API comunicando-se via localhost.

🔑 Gabarito de Código & Solução Comentada
# 1. Cria o Pod com portas abertas
podman pod create --name backend-pod -p 8000:8000 -p 6379:6379

# 2. Adiciona o Redis ao Pod
podman run -d --pod backend-pod --name db-redis redis:alpine

# 3. Adiciona a API ao Pod (conecta no Redis via localhost:6379!)
podman run -d --pod backend-pod --name api-service -e REDIS_HOST=localhost minha-api:latest

🎯 Nível 3: Integração

Problema 15.3 — Geração de Manifestos Kubernetes YAML com Podman

Gere automaticamente o manifesto YAML padrão do Kubernetes a partir do Pod criado localmente no Problema 15.2 com o comando podman generate kube.

🔑 Gabarito de Código & Solução Comentada
# Gera o arquivo YAML pronto para ser aplicado no cluster K8s:
podman generate kube backend-pod > k8s-deployment.yaml

# Para recriar o pod a partir do manifesto:
# podman play kube k8s-deployment.yaml

🎯 Nível 4: Desafio

Problema 15.4 — Setup de Ambiente Containerd com Colima no macOS / Linux

Escreva um script de setup automatizado que configure o colima com runtime containerd, 4 CPUs, 8GB de RAM e instale a CLI nerdctl.

🔑 Gabarito de Código & Solução Comentada
#!/usr/bin/env bash
set -euo pipefail

echo "Iniciando Colima com runtime containerd..."
colima start --cpu 4 --memory 8 --runtime containerd

echo "Verificando status com nerdctl..."
nerdctl version

echo "Executando container de teste..."
nerdctl run --rm alpine uname -a

echo "✅ Ambiente Containerd de alta performance operacional!"