Como usar o Docker em uma máquina AMD rodando o MacOS (Testado no Sonoma 14.4.1).
Eu criei este guia para mostrar uma forma eficiente de usar o Docker em um Ryzentosh, Até o MacOS BigSur ele rodava no VirtualBox 6.1.40 (O último a suportar AMD) que não recebe mais suporte e seu uso necessita do desligamento do System Integrity Protection (acrescenta uma camada de vulnerabilidade no OS), agora com o QEMU + UTM existem atualizações e suporte regulares, além de funcionar com todos os recursos de segurança ativados.
O Brew é um gerenciador de pacotes para MacOS, vamos usa-lo para baixar o Docker, instale o Brew diretamente do site oficial. Após isso rode os seguintes comandos um de cada vez:
brew update
brew upgrade
brew install qemu
brew install docker
brew install docker-compose
Agora que instalamos o Docker e o QEMU (nossa camada de emulação) vamos configurar uma VM, instale o UTM (uma interface gráfica para o QEMU).
Com o UTM instalado baixe um sistema Linux de sua preferência, recomendo o Ubuntu Server pela sua boa compatibilidade.
Abra o UTM e crie uma VM com sua ISO, após isso instale o Docker nessa máquina seguindo a Documentação Oficial.
Nas configurações de rede da máquina use Bridge com layer2. Sobre as outras configurações procure alocar recursos suficientes para suas aplicações.
- Veja a Documentação do Post-Install do Docker, para configurar seu usuário (opcional).
- Se estiver instalando o Ubuntu Server, NÃO instale o Docker em snap, você terá problemas para realizar os ajustes finais.
Aqui darei algumas dicas para integrar esse Docker da VM no Docker do seu MacOS.
Abra o terminal do seu linux e digite:
ip addr
Localize o IP de sua máquina virtual, abra o Terminal do MacOS e digite:
ssh nome-do-seu-usuario@ip-da-maquina-virtual
No shell do seu Linux crie este diretório e use o nano para criar um arquivo de configuração:
mkdir -p /etc/systemd/system/docker.service.d
nano /etc/systemd/system/docker.service.d/options.conf
Ao abir o nano adicione essas linhas no arquivo recém criado:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H unix:// -H tcp://0.0.0.0:2375
Rode os seguites comandos para reiniciar o Docker:
systemctl daemon-reload
systemctl restart docker
Para testarmos se deu certo digite no Terminal do seu MacOS:
DOCKER_HOST=tcp://ip-da-maquina-virtual:2375 docker info
Se receber um output com informações da máquina virtual prossiga, caso o contrário revise os passos.
No terminal do MacOS digite:
echo "export DOCKER_HOST=tcp://remote-docker-host-ip:2375" >> ~/.zshrc
exit
OBS: Nas configurações do UTM podemos desabilitar seu icone na dock, afinal usaremos a VM via terminal de qualquer forma, explore todas as opções dessa ferramenta.
O resultado final deve ser o Docker do Mac completamente integrado a sua VM, sempre que for usar o Docker ligue ela.