我一直在尝试按照 https://learning-continuous-deployment.github.io/docker/images/dockerfile/2015/04/22/docker-gui-osx/的说明进行操作,以便在MacBookPro主机内的Docker容器中运行GUI应用程序(使用Docker工具)。
我使用 Fedora 23 和安装了 Firefox 创建了一个简单的 docker 容器。
我尝试运行Firefox,大约一分钟后出现以下错误:
Unable to init server: Broadway display type not supported: 192.168.57.3:0
Error: cannot open display: 192.168.57.3:0
有没有人知道错误的含义和/或如何修复它?
在 Mac 上,您可能会发现以下步骤很有用:
- 安装 XQuartz
- 打开它,转到首选项>安全性,然后选中允许来自网络客户端的连接的选项
- 重新启动
- 启动 XQuartz(从应用程序文件夹或使用
open -a XQuartz
) - 允许来自您的 IP 的传入连接与
xhost + $IP
(请参阅注释 1) - 在 docker 容器中运行 Firefox(请参阅注释 2)
注意1:这是一个巧妙的技巧来获取您的IP地址:
export IP=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
注2:还有一个示例docker run命令来启动Firefox
docker run -it -e DISPLAY=$IP:0 -v /tmp/.X11-unix:/tmp/.X11-unix <image> firefox
重新启动笔记本电脑为我解决了问题。
我看到了同样的错误,不幸的是重新启动并没有为我解决问题。但是,我能够通过安装并指向我的本地.Xauthority文件:
IP=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
docker run --rm --name firefox -e DISPLAY=$IP:0 -e XAUTHORITY=/.Xauthority --net host -v /tmp/.X11-unix:/tmp/.X11-unix -v ~/.Xauthority:/.Xauthority jess/firefox
当然,这是假设你的XQuarts/xhost的东西是根据这个答案正确配置的