Execute aplicativos GUI no contêiner no OSX (docker para mac)

Execute XQuartz

  • Atualizar preferências da guia ‘Segurança’ – ative ‘Permitir conexão de clientes de rede’
  • Reinicie o XQuartz e verifique se ele está escutando na porta 6000:
lsof -i :6000

Instale o socat

E execute-o de forma que ele aguarde as conexões e as passe para o XQuartz.

brew install socat
socat TCP
-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:"$DISPLAY""

Obtenha o IP da sua máquina local:

ip=$(ifconfig en0 | grep inet | awk '$1==""inet"" {print $2}') && echo ""My IP is: $ip""

Permitir que a máquina local fale com o XQuartz

xhost + ${ip}

Execute seu host docker:

docker run --rm -it -e DISPLAY=${ip}:0 -v /tmp/.X11-unix:/tmp/.X11-unix --name firefox jess/firefox

Agora você pode fazer as coisas descritas aqui