如何使用 Docker 从 Window 中的 linux 容器 运行 GUI 应用程序?
How to run GUI application from linux container in Window using Docker?
我有一个基于 QT 的 GUI 应用程序,我在 docker(centos 图像)中编译了它。我可以在我的 Linux 机器(OpenSUSE 13.2)中从 Centos 图像内部启动 GUI 应用程序
按照此博客的说明
“http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker”
我想通过 window.I 安装 window docker 来做同样的事情。我加载了具有我的 GUI 应用程序的所需 centos 图像,并通过终端尝试使用 container 启动 GUI。它给出错误提示“gui:无法连接到 X 服务器”
任何想法或解决方案。
在 docker issue 8710 上也有类似的讨论,但对于 MacOS:
A somewhat crude way to do this:
Start socat
to expose local xquartz
socket on a TCP port
socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"
(注意:对于 Windows,您至少需要:
Pass the display to container (assuming virtualbox host is available on 192.168.59.3):
docker run -e DISPLAY=192.168.59.3:0 jess/geary
(This is insecure on public networks, add bind
, su
and range
options to socat to limit access.)
我启动了 vncserver,然后可以使用 vncviewer 查看我的应用程序。
我有一个基于 QT 的 GUI 应用程序,我在 docker(centos 图像)中编译了它。我可以在我的 Linux 机器(OpenSUSE 13.2)中从 Centos 图像内部启动 GUI 应用程序 按照此博客的说明 “http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker”
我想通过 window.I 安装 window docker 来做同样的事情。我加载了具有我的 GUI 应用程序的所需 centos 图像,并通过终端尝试使用 container 启动 GUI。它给出错误提示“gui:无法连接到 X 服务器”
任何想法或解决方案。
在 docker issue 8710 上也有类似的讨论,但对于 MacOS:
A somewhat crude way to do this:
Start
socat
to expose localxquartz
socket on a TCP port
socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"
(注意:对于 Windows,您至少需要:
Pass the display to container (assuming virtualbox host is available on 192.168.59.3):
docker run -e DISPLAY=192.168.59.3:0 jess/geary
(This is insecure on public networks, add
bind
,su
andrange
options to socat to limit access.)
我启动了 vncserver,然后可以使用 vncviewer 查看我的应用程序。