我正在尝试在MacOS上运行任何GUI容器。我尝试的每个容器(firefox,chrome,tor,spotify等)我总是得到错误Error: cannot open display
。并且它并不特定于我使用docker run
传递环境标志的$DISPLAY
命令。当我尝试运行xhost +
时,我得到了同样的错误。
我有一个新的XQuartz安装。它正在运行。我在安全性下打开了“允许来自网络的连接”。我已经尝试构建自己的图像并拉出jessie frazelle的图像。我不怀疑它是码头问题或Dockerfiles。它是主机上的东西,我的笔记本电脑。我似乎无法弄清楚它是什么。
MacOS Sierra 10.12.5
Docker 17.12.0稳定
XQuartz 2.7.11(xorg-server 1.18.4)
我的本地$DISPLAY
设置为:0.0
答案 0 :(得分:2)
所以我终于开始工作了。它看起来很简单。我不确定这实际上是如何解决问题的,但现在容器工作了。
我如何修复它是打开XQuartz,然后从“应用程序”菜单打开“终端”应用程序。然后运行命令export DISPLAY=192.168.1.X:0
,然后xhost +
。它输出类似“访问控制禁用,客户端可以从任何主机连接”。之后,我能够运行docker run
命令来启动所需的GUI容器。
我仍然不确定这是如何工作的,而不是从我的笔记本电脑终端应用程序运行它们,但它确实有效。它必须是我在当地环境中设定的东西。希望这可以帮助其他可能遇到同样问题的人。
答案 1 :(得分:2)
基于@Byron的回答,我发现我可以通过在普通终端中运行以下两个命令来使其工作:
export DISPLAY=:0
/opt/X11/bin/xhost +