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

emo*_*ory 12 macos socat docker xquartz

我一直在尝试按照https://learning-continuous-deployment.github.io/docker/images/dockerfile/2015/04/22/docker-gui-osx/上关于在Docker容器中运行GUI应用程序的说明进行操作MacBookPro主机(使用Docker工具).

我使用Fedora 23创建了一个简单的docker容器并安装了firefox.

我尝试运行firefox,大约一分钟后,我收到以下错误:

Unable to init server: Broadway display type not supported: 192.168.57.3:0
Error: cannot open display: 192.168.57.3:0
Run Code Online (Sandbox Code Playgroud)

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

Ada*_*ths 12

在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}') 
Run Code Online (Sandbox Code Playgroud)

注意2:一个示例docker run命令启动firefox

docker run -it -e DISPLAY=$IP:0 -v /tmp/.X11-unix:/tmp/.X11-unix <image> firefox
Run Code Online (Sandbox Code Playgroud)

  • 步骤3很重要!注销并重新登录还不够! (2认同)