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

时间:2016-05-30 10:58:28

标签: macos docker socat xquartz

我一直在尝试按照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

有没有人知道错误意味着什么和/或如何解决它?

3 个答案:

答案 0 :(得分:8)

在Mac上,您可能会发现以下步骤非常有用:

  1. 安装XQuartz
  2. 打开它,转到首选项>安全性并选中允许来自网络客户端的连接的选项
  3. 重新启动
  4. 启动XQuartz(从应用程序文件夹或使用open -a XQuartz
  5. 允许来自您的IP的传入连接xhost + $IP(参见注释1)
  6. 在docker容器中运行firefox(参见注释2)
  7. 注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
    

答案 1 :(得分:2)

重新启动笔记本电脑为我解决了这个问题。

答案 2 :(得分:2)

我看到了同样的错误,不幸的是重新启动并没有为我解决问题。但是,我可以通过挂载并指向我的本地.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内容已根据this answer

进行了正确配置