🦭 Cap 15: Containers Sem Daemon e Sem Root: Podman, Buildah, Containerd e Colima
🗺️ A Arquitetura OCI: Docker Daemon vs Podman Daemonless
flowchart TD
subgraph DOCKER_ARCH ["Docker Tradicional (Centralizado)"]
CLI_D["Docker CLI"] --> |"Socket Unix (/var/run/docker.sock)"| DAEMON["Docker Daemon (dockerd - Roda como ROOT) 🚨"]
DAEMON --> CONT_D["Containers"]
end
subgraph PODMAN_ARCH ["Podman (Daemonless & Rootless) ⚡"]
CLI_P["Podman CLI (alias docker=podman)"]
--> |"Fork/Exec Direto via Conmon / crun"| CONT_P["Containers (Rodando no User Namespace sem privilégios root)"]
end
style DOCKER_ARCH fill:#ffebee,stroke:#d32f2f,stroke-width:1.5px
style DAEMON fill:#b71c1c,stroke:#7f0000,stroke-width:1.5px,color:#ffffff
style PODMAN_ARCH fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
style CLI_P fill:#00897b,stroke:#004d40,stroke-width:2px,color:#ffffff
📖 Fundamentos e Aplicação
Por muitos anos, o Docker foi sinônimo exclusivo de containers. No entanto, a padronização das especificações pela Open Container Initiative (OCI) abriu caminho para uma nova geração de ferramentas mais seguras, sem daemons pesados e que operam sem privilégios de superusuário (Rootless).
1. O Ecossistema Red Hat / OCI:
- Podman (Pod Manager): CLI 100% compatível com a sintaxe do Docker (
alias docker=podman), mas sem processo centralizado rodando em background (Daemonless). - Buildah: Construção de imagens OCI eficientes sem necessidade de Dockerfiles ou containers em execução.
- Skopeo: Inspeção, cópia e sincronização de imagens entre registros remotos (Docker Hub, Quay, ECR) sem precisar fazer download (pull) local das camadas.
2. Runtimes para macOS e Ambientes Mínimos:
- Colima / Lima: Máquinas virtuais Linux ultraleves para macOS/Linux com suporte direto a runtimes
containerdoudockersem cobrança de licenciamento proprietário. - Containerd & Nerdctl: O runtime padrão dos nós do Kubernetes (K8s) utilizado diretamente com a CLI
nerdctl.