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
Depois disso é só usar a CLI (limactl
) para iniciar uma instância:
$ 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:
$ limactl start --list-templates
A saída vai ser algo assim:
$ almalinux-8
almalinux-9
almalinux
alpine
apptainer-rootful
apptainer
archlinux
buildkit
centos-stream-8
....
Iniciando a instância a partir de um template:
$ limactl start --name=alpine-instance template://alpine
Você pode listar as instâncias criadas/iniciadas com:
$ 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:
$ limactl stop <nome-da-instancia>
E caso queira deletar:
$ 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:
$ brew install colima
Para iniciar com as configurações padrões:
$ colima start
Por padrão, o container runtime é Docker, então se quiser usar outro:
$ 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:
$ colima start --runtime containerd --kubernetes
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
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)
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?
Tá na lista aqui pra dar uma olhada, quem sabe hah
já chegou a usar o finch? :D