Arquitetura Interna – Componentes do Docker | Docker
- Arquitetura Interna – Componentes do Docker | Docker
Docker Engine (dockerd)
O coração do sistema Docker. É o daemon que roda em background, expõe a API REST e gerencia todos os objetos Docker, como:
- Imagens
- Containers
- Redes
- Volumes
Docker CLI
A interface de linha de comando (comando docker).
Funciona como o cliente, enviando requisições para a API do Docker Engine para que as ações sejam executadas.
containerd
Runtime de containers de alto nível. Responsável por gerenciar todo o ciclo de vida dos containers, incluindo:
- Transferência de imagens (pull/push)
- Armazenamento
- Execução dos containers
runc
Runtime de baixo nível, compatível com OCI (Open Container Initiative). É um componente leve responsável exclusivamente por criar e rodar containers utilizando recursos do kernel Linux, como:
- Namespaces
- cgroups
Plugins & Extensões
Ferramentas essenciais que hoje vêm integradas ao Docker, como:
- Docker Compose – orquestração de aplicações multicontainer
- Buildx – construção avançada de imagens Docker
Dependências do Host
O Docker depende de funcionalidades específicas do sistema operacional (principalmente Linux), como:
- Overlay2 (driver de armazenamento)
- iptables
- Drivers de rede
Esses componentes são essenciais para o funcionamento correto dos containers.
Fluxo de Execução
Quando você executa o comando:
docker run
O fluxo ocorre da seguinte forma:
- O Docker CLI envia a requisição
- O Docker Engine recebe e processa
- O containerd gerencia o ciclo de vida
- O runc cria e executa o container