Post

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:

1
 brew install lima

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

1
 limactl start

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:

1
 limactl start --list-templates

A saída vai ser algo assim:

1
2
3
4
5
6
7
8
9
10
$ almalinux-8
almalinux-9
almalinux
alpine
apptainer-rootful
apptainer
archlinux
buildkit
centos-stream-8
....

Iniciando a instância a partir de um template:

1
 limactl start --name=alpine-instance template://alpine

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

1
 limactl list

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:

1
 limactl stop <nome-da-instancia>

E caso queira deletar:

1
 limactl delete <nome-da-instancia>

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:

1
 brew install colima

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

1
 colima start

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

1
 colima start --runtime containerd

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:

1
 colima start --runtime containerd --kubernetes

E pronto, seu cluster já está criado:

1
2
3
 k get nodes
$ NAME     STATUS   ROLES                  AGE     VERSION
colima   Ready    control-plane,master   7d12h   v1.25.4+k3s1

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).

This post is licensed under CC BY 4.0 by the author.