DEV Community

Cover image for Executando (e orquestrando) containers no MacOS com Lima e Colima
Edson C. (aka tuxpilgrim)
Edson C. (aka tuxpilgrim)

Posted on • Updated on

Executando (e orquestrando) containers no MacOS com Lima e Colima

Usar docker no macOS pode ser um problema, dado que o Docker Desktop é um pouco agressivo com o consumo de recursos da máquina, daí que surgem algumas alternativas, usar o Lima é uma delas, e é disso que vou falar um pouco.

O projeto Lima

O projeto lima-vm (Linux Virtual Machines) usa máquinas virtuais Linux para fazer compartilhamento automático de arquivo e encaminhamento de portas (parecido com o WSL2) com containerd.

Algumas características que valem a pena destacar:

  • Além do suporte nativo ao containerd suporta outras engine de containers, como docker, podman, apptainer
  • Suporte a orquestradores de container como kubernetes (com k3s e via kubeadm), faasd e nomad
  • Suporte a uma boa quantidade de distribuições linux, como Alpine, Debian, Fedora, openSUSE, Arch Linux e por aí vai

Mais detalhes vocês podem conferir no repositório do Github (que super recomendo a dar uma olhada, tem bastante coisa).

Hora de usar

A instalação no macOS pode ser feita com homebrew:

$ brew install lima
Enter fullscreen mode Exit fullscreen mode

Depois disso é só usar a CLI (limactl) para iniciar uma instância:

$ limactl start
Enter fullscreen mode Exit fullscreen mode

As configurações da instância padrão (default) são:

  • Sistema operacional: Ubuntu 22.10 (Kinetic Kudu)
  • CPU: 4 cores
  • Memória: 4 GiB
  • Disco: 100 GiB
  • Montagens: ~ (somente leitura), /tmp/lima (escrita)
  • SSH: 127.0.0.1:60022

Você pode iniciar uma instância a partir de um template, para ver os templates disponíveis:

$ limactl start --list-templates
Enter fullscreen mode Exit fullscreen mode

A saída vai ser algo assim:

$ almalinux-8
almalinux-9
almalinux
alpine
apptainer-rootful
apptainer
archlinux
buildkit
centos-stream-8
....
Enter fullscreen mode Exit fullscreen mode

Iniciando a instância a partir de um template:

$ limactl start --name=alpine-instance template://alpine
Enter fullscreen mode Exit fullscreen mode

Você pode listar as instâncias criadas/iniciadas com:

$ limactl list
Enter fullscreen mode Exit fullscreen mode

Para acessar a instância, você pode usar o comando limactl shell, de duas formas:

  • abrindo um shell: limactl shell <nome-da-instancia>
  • executando um comando: limactl shell <nome-da-instancia> <comando>

Se quiser para a instância, só usar:

$ limactl stop <nome-da-instancia>
Enter fullscreen mode Exit fullscreen mode

E caso queira deletar:

$ limactl delete <nome-da-instancia>
Enter fullscreen mode Exit fullscreen mode

Existem alguns outros comandos, podem consultar a lista aqui.

O projeto Colima

A ideia do projeto colima é criar um ambiente de de container no macOS com uma configuração mínima usando o Lima.

Hora de usar

A instalação também pode ser feita via homebrew:

$ brew install colima
Enter fullscreen mode Exit fullscreen mode

Para iniciar com as configurações padrões:

$ colima start
Enter fullscreen mode Exit fullscreen mode

Por padrão, o container runtime é Docker, então se quiser usar outro:

$ colima start --runtime containerd
Enter fullscreen mode Exit fullscreen mode

As configurações padrões da VM criada pelo colima são:

  • 2 CPUs
  • 2Gib de memória
  • goGiB de disco

Isso é totalmente customizável com as flags --cpu, --memory, --disk ou alterando no arquivo de configuração, com --edit.

Agora a parte MAIS LEGAL, se quiser usar kubernetes, é só executar:

$ colima start --runtime containerd --kubernetes
Enter fullscreen mode Exit fullscreen mode

E pronto, seu cluster já está criado:

$ k get nodes
$ NAME     STATUS   ROLES                  AGE     VERSION
colima   Ready    control-plane,master   7d12h   v1.25.4+k3s1
Enter fullscreen mode Exit fullscreen mode

Mais detalhes dos comandos vocês podem ver no repositório do projeto no Github.

Por agora é isso, espero que seja útil pra mais alguém (assim como foi pra mim).

Top comments (2)

Collapse
 
bergpb profile image
Lindemberg Barbosa

Bacana, conhecia o projeto colima mas ainda não tinha tirado um tempo pra ter um overview melhor da ferramenta.
Vai rolar um post sobre o finch em breve?

Collapse
 
tuxpilgrim profile image
Edson C. (aka tuxpilgrim)

Tá na lista aqui pra dar uma olhada, quem sabe hah
já chegou a usar o finch? :D