OSX X11 错误无法打开显示



我正在尝试在MacOS上运行任何GUI容器。对于我尝试的每个容器(火狐,铬,tor,spotify等(,我总是收到错误Error: cannot open display。而且它并不特定于我用$DISPLAY传递环境标志的docker run命令。当我尝试运行xhost +时,我收到相同的错误。

我有一个新的XQuartz安装。它已启动并运行。我已经在安全性下打开了"允许来自网络的连接"。我尝试过构建自己的图像并提取Jessie Frazelle的图像。我不怀疑这是码头工人问题或 Dockerfiles。这是主机上的东西,我的笔记本电脑。我似乎无法弄清楚它是什么。

MacOS Sierra 10.12.5
码头工人 17.12.0 稳定版
XQuartz 2.7.11 (xorg-server 1.18.4(
我本地的$DISPLAY设置为:0.0

所以我终于把它搞定了。这似乎很简单。我不确定这实际上如何解决问题,但现在容器可以工作了。

我的解决方法是打开XQuartz,然后从"应用程序"菜单中打开"终端"应用程序。然后运行命令 export DISPLAY=192.168.1.X:0 ,然后xhost + 。它输出类似这样的内容"访问控制已禁用,客户端可以从任何主机连接"。之后,我能够运行我的docker run命令来启动所需的 GUI 容器。

我仍然不确定这是如何工作的,并且没有从我的笔记本电脑终端应用程序运行它们,但它奏效了。这一定是我在本地环境中设置的。希望这有助于其他人可能遇到相同的问题。

根据@Byron的回答,我发现我可以通过在普通终端中运行以下 2 个命令来让它工作:

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

最新更新