Docker no macOS — Comparação e Boas Práticas
Guia completo de Docker no macOS: Docker Desktop vs Colima vs Orbstack, multi-stage, Compose, performance virtiofs vs gRPC FUSE.
Docker no macOS já foi um pesadelo de performance. Mas com o Colima, Orbstack, e as melhorias do Docker Desktop, nunca foi tão fácil ter contentores Linux a correr nativamente no teu Mac — seja Intel ou Apple Silicon.
Quando o Docker chegou ao macOS, corria dentro de uma VM VirtualBox com uma lentidão que fazia qualquer developer suspirar. Os mounts de diretórios eram especialmente dolorosos — npm install dentro de um contentor demorava minutos.
Hoje, o cenário é completamente diferente. Temos Docker Desktop com engine VM acelerada, Colima (open-source, leve), e o Orbstack (o novo miúdo do bairro que promete performance nativa). Cada um com os seus trade-offs.
Vou comparar as três opções principais — Docker Desktop, Colima e Orbstack — mostrar-te multi-stage builds para reduzir imagens, configurar Docker Compose para desenvolvimento, otimizar performance com virtiofs e cache mounts, e dar dicas de limpeza e manutenção.
Como o Docker corre no macOS: VM Linux com contentores por cima
Docker Desktop vs Colima vs Orbstack
| Critério | Docker Desktop | Colima | Orbstack |
|---|---|---|---|
| Preço | Grátis para uso pessoal, pago para empresas | Grátis (open-source) | Grátis (uso pessoal), Pro pago |
| Engine | VM própria (HyperKit/Apple Hypervisor) | Lima VM + containerd | VM própria (Apple Hypervisor) |
| Integração macOS | Total (GUI, settings, menu bar) | CLI only | GUI + CLI, menu bar |
| Performance | Boa (virtiofs). Melhorou muito com Apple Silicon | Muito boa (virtiofs) | Excelente (filesystem nativo) |
| Consumo RAM | Médio (~2-3 GB em idle) | Baixo (~1 GB) | Baixo (~1-2 GB) |
| Features extra | Docker Scout, Extensions, Kubernetes | Kubernetes opcional, Docker socket | Docker + Podman, redes simplificadas |
| Suporte Apple Silicon | Nativo (ARM64) | Nativo | Nativo |
| Atualizações | Automáticas via app | brew upgrade colima | Automáticas via app |
A minha escolha: Para projetos pessoais, uso Colima — é leve, grátis e faz o que preciso. Para clientes que exigem uma GUI e suporte, Docker Desktop é a escolha segura. O Orbstack é o mais promissor dos três, com performance realmente impressionante.
Instalação rápida com Colima
Dockerfile multi-stage para imagens pequenas
Multi-stage builds são a forma mais eficaz de reduzir o tamanho das imagens. O princípio é simples: usa uma imagem grande para compilar/construir, e uma imagem mínima para correr.
Exemplo Go (de 1.2 GB para 15 MB)
Exemplo Python (de 900 MB para 120 MB)
Diferença de tamanho entre single-stage e multi-stage para Go e Python
Docker Compose para desenvolvimento
Dica: O uso de profiles no Compose permite ter serviços que só sobem quando queres. Por exemplo, docker compose --profile dev up sobe app + db, mas docker compose --profile staging up pode incluir um sidecar de monitoring.
Performance no macOS: virtiofs vs gRPC FUSE
O pesadelo do Docker no macOS sempre foram os bind mounts — a ponte entre o filesystem do Mac e o da VM Linux. Três tecnologias competem por este lugar:
| Tecnologia | Performance | Disponível em |
|---|---|---|
| osxfs (legacy) | Lenta (10-50 MB/s) | Docker Desktop (pré-2022) |
| gRPC FUSE | Razoável (50-200 MB/s) | Docker Desktop (padrão atual) |
| virtiofs | Rápida (500-1500 MB/s) | Colima, Docker Desktop (selecionável), Orbstack |
Para ativar virtiofs no Colima:
Para cache mounts — acelera imenso builds que repetem dependências:
Limpeza e manutenção
Recapitulando
- Escolhe o runtime certo: Docker Desktop (completo), Colima (leve), Orbstack (rápido)
- Multi-stage builds: Go de 1.2 GB → 15 MB, Python de 900 MB → 120 MB
- Docker Compose com profiles para ambientes dev/staging
- virtiofs para performance de bind mounts no macOS
- Cache mounts para builds mais rápidas com BuildKit
- docker system prune e docker scout para manutenção e segurança
Docker no macOS nunca foi tão bom. Escolhe o runtime que mais se adequa ao teu fluxo, otimiza os teus Dockerfiles com multi-stage, e usa virtiofs para montagens rápidas. Os dias de esperar 5 minutos por um npm install já lá vão.
Recursos adicionais
Partilhar
Comentários 0
Ainda sem comentários — sê o primeiro.