Search code examples
macosdockersocatxquartz

Running GUI apps on docker container with a MacBookPro host


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?


Solution

  • 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