← Todos os posts

Rodando Docker no Linux ARM a partir do meu Mac

As ferramentas de desenvolvimento ficam no Mac ARM, enquanto outra máquina com Linux ARM roda os containers.

Neste post

Por que separar as duas coisas

Mantenho o editor e as ferramentas de desenvolvimento no meu Mac ARM e rodo o Docker em outra máquina, com Linux ARM. Bancos de dados e outros serviços podem consumir bastante memória e armazenamento, por isso levei os containers, as imagens e os volumes para lá.

Continuo usando Docker, Compose e Buildx pelo Mac. Um contexto do Docker faz a conexão com o Linux por SSH.

O que o instalador faz

Reuni tudo em um instalador que configura as ferramentas nas duas máquinas, cria o contexto do Docker e confere a comunicação entre elas. Há módulos opcionais para armazenamento em SSD e limpeza de recursos antigos, além do Colima para rodar containers localmente no Mac.

O projeto começou com uma Radxa rodando Armbian. O instalador também inclui configurações para outros equipamentos ARM64 com Debian, Ubuntu ou Armbian.

O que roda em cada máquina

Desenvolvimento no Mac. Contêineres no Linux ARM.

MacFerramentas de desenvolvimento
Contexto Docker
via SSH
Linux ARMContêineres e armazenamento

No Mac

  • Editor
  • Docker CLI
  • Compose
  • Buildx

A CLI do Docker se conecta ao Engine remoto por um contexto Docker via SSH.

No Linux ARM

  • Docker Engine
  • Imagens
  • Volumes
  • Contêineres

O Docker Engine executa os contêineres e armazena as imagens e os volumes no Linux ARM.

Essa divisão depende da conexão entre as duas máquinas.

Limitações

Essa configuração depende da conexão entre as máquinas, então uma rede lenta atrapalha. Como o Linux também roda em ARM, mover o projeto para lá não resolve dependências que só funcionam em x86.