Docker在通过SSH连接时运行X应用程序

我已经使用这些说明来运行 GUI应用程序与Docker来创build图像,使我可以启动基于GUI的应用程序。

当在同一台计算机上运行Docker时,这一切都完美无瑕,但在远程主机上运行Docker时会停止工作。

本地,我可以跑

docker --rm --ti -e DISPLAY -e <X tmp> <image_name> xclock 

我可以在我的主机上运行xclock

当使用XForwarding远程连接到主机时,我可以像任何人所期望的那样运行在本地X Server上显示的X应用程序。

但是,如果在远程主机上,我尝试运行上面的docker命令,它无法连接到DISPLAY (通常是localhost:10.0

我认为问题在于XForwarding是在远程主机的本地主机接口上设置的。 所以docker主机无法连接到DISPLAY=localhost:10.0因为localhost意味着远程主机,从docker本身无法访问。

任何人都可以提出一个优雅的方式来解决这个问题

问候亚历山德罗

编辑1 :我想一种可能的方法是使用socat将远程/tmp/.X11-unix到本地计算机。 这样我就不需要使用端口转发。 它看起来像openssh 6.7将本地支持unix套接字转发。