Byron Mansfield
Byron Mansfield

Reputation: 663

OSX X11 Error cannot open display

I am trying to run any GUI container I can on MacOS. With every container I try (firefox, chrome, tor, spotify, etc) I always get the error Error: cannot open display. And it's not specific to the docker run command where I pass the environment flag with my $DISPLAY. When I try to run xhost + I get the same error.

I have a fresh XQuartz installation. It is up and running. I have turned on "allow connections from network" under security. I've tried building my own images and pulling jessie frazelle's images. I do not suspect it is a docker issue or the Dockerfiles. It is something on the host, my laptop. I can't seem to figure out what it is.

MacOS Sierra 10.12.5
Docker 17.12.0 Stable
XQuartz 2.7.11 (xorg-server 1.18.4)
My local's $DISPLAY is set to :0.0

Upvotes: 12

Views: 30731

Answers (2)

Lucas Pottersky
Lucas Pottersky

Reputation: 1919

Based on @Byron's answer, I've found out that I could get it to work by running these 2 commands in the normal terminal:

export DISPLAY=:0
/opt/X11/bin/xhost +

Upvotes: 15

Byron Mansfield
Byron Mansfield

Reputation: 663

So I finally got this to work. And it seems it was pretty simple. I am not certain how this actually fixes the issue, but now the containers work.

How I fixed it was opening up XQuartz and then opening up the "Terminal" app from the "Applications" menu. Then running the command export DISPLAY=192.168.1.X:0, then xhost +. It outputted something like this "access control disabled, clients can connect from any host". After that I was able to run my docker run commands to launch the desired GUI containers.

I am still uncertain how this works and not running them from my laptops Terminal app, but it worked. It must be something I have set in my local env. Hopefully this helps someone else out who may be running into the same issues.

Upvotes: 19

Related Questions