Running GUI apps on docker container with a MacBookPro host

emory picture emory · May 30, 2016 · Viewed 9.4k times · Source

I have been trying to follow the instructions on https://learning-continuous-deployment.github.io/docker/images/dockerfile/2015/04/22/docker-gui-osx/ about running GUI apps in a docker container inside a MacBookPro host (using Docker tools).

I created a simple docker container using Fedora 23 and with firefox installed.

I try to run firefox and after about a minute I get the following error:

Unable to init server: Broadway display type not supported: 192.168.57.3:0
Error: cannot open display: 192.168.57.3:0

Does anyone have a clue what the error means and/or how to fix it?

Answer

Adam Griffiths picture Adam Griffiths · Nov 15, 2017

On a Mac you may find the following steps useful:

  1. Install XQuartz
  2. Open it, goto preferences > Security and check the option to allow connections from network clients
  3. Reboot
  4. Start XQuartz (from the applications folder or with open -a XQuartz)
  5. Allow incoming connections from your ip with xhost + $IP (see note 1)
  6. Run firefox in your docker container (see note 2)

Note 1: Here's a neat trick toget your ip address:

export IP=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}') 

Note 2: And an example docker run command to start firefox

docker run -it -e DISPLAY=$IP:0 -v /tmp/.X11-unix:/tmp/.X11-unix <image> firefox