Skip to content

Instantly share code, notes, and snippets.

@gustavohenrique
Created December 3, 2023 13:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gustavohenrique/929099cca1d2f831806266357e972c00 to your computer and use it in GitHub Desktop.
Save gustavohenrique/929099cca1d2f831806266357e972c00 to your computer and use it in GitHub Desktop.
Rodar docker dentro do multipass ao invés do docker desktop no Mac

O ano é 2023 e a experiência de utilizar Docker no Mac continua sofrível se comparado com rodar no Linux. Então voltei a utilizar o Multipass no lugar do Docker Desktop.

Criar uma instancia do multipass contendo Docker

multipass launch docker --name docker
multipass shell docker

Criar dentro da VM o mesmo usuario do host

  • Mesmo username
  • Mesmo UID (echo $UID)
  • Link de /home para /Users
sudo useradd -u 502 -g 20 -d /home/gustavo -m -g gustavo -p mypassword -s /bin/bash -k /etc/skel gustavo
sudo usermod -aG sudo,docker,audio,dip,video,plugdev,netdev,lxd,adm,dialout gustavo
sudo ln -snf /home /Users

Configurar Docker na VM

  • Copiar a chave pub do user para dentro de .ssh/authorized_keys na VM
  • Alterar config do docker para escutar na porta 2375
  • Configurar variavel DOCKER_HOST no host apontando para a VM
ssh-copy-id gustavo@192.168.64.8
sudo systemctl edit --full docker # ExecStart=/usr/bin/dockerd -H fd:// -H tcp://127.0.0.1:2375
sudo systemctl daemon-reload
sudo systemctl restart docker

# on host
export DOCKER_HOST=ssh://gustavo@192.168.64.8 # IP da VM

NFS

  • Configurar NFS server no Mac e iniciar o daemon
  • Montar o NFS na VM
# MacOS como NFS server
echo "/Users/gustavo/Workspace -mapall=gustavo -network 192.168.0.0 -mask=255.255.0.0" | sudo tee -a /etc/exports
sudo nfsd restart

# VM como NFS client
sudo apt install -y nfs-common
mkdir ~/Workspace
sudo mount -t nfs 192.168.64.1:/Users/gustavo/Workspace /home/gustavo/Workspace

Extra

# Instalar psql no Mac
brew install libpq
export PATH=$PATH:/usr/local/opt/libpq/bin
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment