如何将Docker for Mac转发到X11?

使用Docker for Mac 1.12(stable)和OS X 10.11.5(15F34),我试图让我的一个容器转发到X11。

首先,我从bash shell安装XQuartz:

$ brew cask install xquartz ==> Downloading https://dl.bintray.com/xquartz/downloads/XQuartz-2.7.9.dmg ######################################################################## 100.0% ==> Verifying checksum for Cask xquartz ==> Running installer for xquartz; your password may be necessary. ==> Package installers may write to any location; options such as --appdir are ignored. Password: ==> installer: Package name is XQuartz 2.7.9 ==> installer: Installing at base path / ==> installer: The install was successful. 🍺 xquartz staged at '/usr/local/Caskroom/xquartz/2.7.9' (73M) 

然后我继续设置XQuartz …

 open -a XQuartz 

在XQuartz首选项 – >安全选项卡中,启用“允许来自networking客户端的连接”。

那么我应该在我的bash shell中运行xhost + $MY_IP_ADDRESS ,但是我得到的只是这个错误:

 xhost: unable to open display "" 

最后,我正在阅读的所有指南都说我应该像这样运行我的容器:

 docker run -e DISPLAY=$MY_IP_ADDRESS:0 -v /tmp/.X11-unix:/tmp/.X11-unix DOCKER_IMAGE 

…但这不起作用。 在我的特定容器中,我得到这个错误:

 ... cannot connect to X server 10.0.0.131:0 

我究竟做错了什么?

原来在XQuartz 2.7.9中有一个错误。

当使用XQuartz 2.7.10_beta2时,它工作。

我在Mac OS上安装了xQuartz 2.7.11。

我得到以下错误<program>: cannot connect to X server <ip>:0试图运行docker集装箱时。 我试图降级XQuartz,但它仍然没有解决我的问题。

一个关键的一步到设置是添加您的IP访问控制列表为xhost。

xhost + $(ipconfig getifaddr en0)

添加到xhost的IP后,一切正常。 没有必要降级Xquartz版本。