在Docker中使用X11转发运行多个GUI

我在Docker中有一个安装程序,用于在Ubuntu 14.04.03的Docker中运行GUI应用程序。

GUI应用程序使用具有必要参数的脚本文件启动。 如果应用程序只有一个窗口,设置工作正常,我可以通过X11转发轻松查看结果。 这是我用来运行应用程序的命令

sudo docker run -it \ -v /tmp/.X11-unix:/tmp/.X11-unix \ -e DISPLAY=$DISPLAY \ -w /Apps/ \ --rm appsdocker:v1 \ /bin/bash -c "./run_singleGUIapp.sh param1" 

但是如果GUI有一个button,点击后会打开一个新窗口,GUI应用程序将无法响应,并在一段时间后返回到系统提示符。

我试图从这个链接运行的例子,说明如何在Docker上使用X11转发运行firefox。 一旦我searchDocker中运行的firefox上的查询,并尝试“在新窗口中打开”任何后续命中,应用程序的工作。 我试图推测,这也会导致一个不响应的行为,但似乎这不是一般情况,只是坚持我的脚本。

我知道这是非常模糊的问题描述,因为我不能透露应用程序和环境的细节。 任何关于如何处理GUI应用程序的指针将不胜感激。

这可能是X身份validation的问题。

试着做下面的事情。 在主机上:

  1. echo $DISPLAY并记住数字(如:4
  2. xauth listfind上面的数字的cookie并复制整个行

Docker内部:

  1. xauth add <paste the copied line>

(因为你没有附加容器,你可以把这行传给你的run命令: /bin/bash -c "xauth add <cookie>; ./run_singleGUIapp.sh param1"