我在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有一个按钮,当点击它时,打开一个新窗口,GUI应用程序无法响应,一段时间后返回到系统提示符。
我尝试运行此link中的示例,该示例解释了如何使用X11转发在docker上运行firefox。一旦我在Docker中运行的Firefox上搜索查询,并尝试在新窗口中打开'对于任何后续命中,该应用程序工作。我试过这个假设,它也会导致一个无响应的行为,但似乎这不是一般情况,只是我的脚本是持久的。
据我所知,这是一个非常模糊的问题描述,因为我无法透露应用程序和环境的细节。关于如何处理产生自身的GUI应用程序的任何指针都将非常感激。
答案 0 :(得分:0)
这可能是X身份验证的问题。
尝试执行以下操作。在主持人:
echo $DISPLAY
并记住数字(类似于:4
)xauth list
找到上面带数字的Cookie并复制整行Docker内部:
xauth add <paste the copied line>
(由于您没有附加容器,您可以将此行传递到run
命令:/bin/bash -c "xauth add <cookie>; ./run_singleGUIapp.sh param1"
)