Colima

Sobre

Colima é um projeto open source (MIT) que fornece runtimes de container no macOS e no Linux com configuração mínima. Funciona como alternativa ao Docker Desktop, mantendo compatibilidade total com os fluxos e ferramentas Docker existentes. Versão destacada no site: v0.10.3.

Funcionamento

Sobe uma VM leve com valores padrão sensatos e expõe o runtime escolhido (Docker, containerd, Kubernetes ou Incus) na máquina host.

Instalação

brew install colima

Uso básico por runtime

# Docker
colima start
docker run hello-world
docker ps
 
# Kubernetes (k3s)
colima start --kubernetes
kubectl get pods
 
# containerd (com nerdctl)
colima start --runtime containerd
nerdctl run hello-world
 
# Incus
colima start --runtime incus
incus launch images:alpine/edge
incus list
 
# Com mais memória
colima start --memory 4 # 4GB

Usando o Docker Compose com o Colima

Ao instalar o docker-compose via Homebrew, o comando docker compose (v2, com espaço) pode não funcionar, pois o Docker CLI procura plugins em ~/.docker/cli-plugins/. Para resolver, basta criar um link simbólico apontando para o binário instalado pelo Homebrew:

ln -sfn $(brew --prefix)/opt/docker-compose/bin/docker-compose ~/.docker/cli-plugins/docker-compose

O que o comando faz:

  • $(brew --prefix) resolve o prefixo do Homebrew (/opt/homebrew em Apple Silicon, /usr/local em Intel), deixando o comando portável.
  • opt/docker-compose/bin/docker-compose é o caminho estável do binário, que não muda a cada atualização de versão.
  • ~/.docker/cli-plugins/docker-compose é onde o Docker CLI espera encontrar o plugin compose.
  • Flags -sfn: -s cria link simbólico, -f sobrescreve um link já existente e -n trata um link existente para diretório como arquivo (evita criar link dentro dele). Isso torna o comando idempotente, podendo ser rodado de novo após atualizar o docker-compose.

Se o diretório ~/.docker/cli-plugins ainda não existir, crie antes com mkdir -p ~/.docker/cli-plugins. Para validar, rode docker compose version.

Principais Recursos

  • Compatível com Docker: usa os workflows existentes sem alterações.
  • containerd: suporte nativo com nerdctl (CLI similar ao Docker).
  • Kubernetes: cluster k3s local com um único comando.
  • Incus: containers de sistema e VMs.
  • Leve: consumo baixo de CPU com defaults sensatos.
  • Cargas de IA: GPU acelerada em Apple Silicon; modelos do Docker AI Registry, HuggingFace e Ollama.
  • Controle de recursos: CPU, memória e disco configuráveis por instância.
  • Múltiplos perfis: instâncias isoladas com configurações diferentes, simultaneamente.

Casos de Uso

  • Substituir o Docker Desktop no macOS (sem custo de licença).
  • Ambiente Kubernetes local para testes.
  • Hospedar containers em home servers.
  • Executar modelos de IA localmente com aceleração de GPU no Apple Silicon.

Limitações

  • Conteúdo extraído apenas da página inicial; detalhes de configuração (flags de CPU/memória/disco, perfis, mounts) estão na documentação oficial e não foram cobertos aqui.

Referências