使用 MacBookPro 主机在 docker 容器上运行 GUI 应用程序



我一直在尝试按照 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 上,您可能会发现以下步骤很有用:

  1. 安装 XQuartz
  2. 打开它,转到首选项>安全性,然后选中允许来自网络客户端的连接的选项
  3. 重新启动
  4. 启动 XQuartz(从应用程序文件夹或使用 open -a XQuartz
  5. 允许来自您的 IP 的传入连接与xhost + $IP(请参阅注释 1)
  6. 在 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的东西是根据这个答案正确配置的

最新更新