【发布时间】:2019-04-28 22:57:34
【问题描述】:
我已使用Running Gui Apps with Docker 的这些说明来创建允许我启动基于 GUI 的应用程序的图像。
在同一台机器上运行 Docker 时一切正常,但在远程主机上运行时停止工作。
在本地,我可以跑
docker --rm --ti -e DISPLAY -e <X tmp> <image_name> xclock
我可以让xclock 在我的主机上运行。
当使用XForwarding 远程连接到主机时,我能够运行显示在本地 X 服务器上的 X 应用程序,正如任何人所期望的那样。
但是,如果我在远程主机上尝试运行上面的 docker 命令,它无法连接到DISPLAY(通常是localhost:10.0)
我认为问题在于XForwarding 是在远程主机的本地主机接口上设置的。
所以 docker 主机无法连接到DISPLAY=localhost:10.0,因为 localhost 表示远程主机,无法从 docker 本身访问。
谁能提出一个优雅的方法来解决这个问题?
问候 亚历山德罗
EDIT1:
我猜一种可能的方法是使用socat 将远程/tmp/.X11-unix 转发到本地机器。这样我就不需要使用端口转发。
看起来 openssh6.7 将原生支持 unix 套接字转发。
【问题讨论】:
-
Alessandro 你找到问题的解决方案了吗?我在远程机器上面临同样的问题。在主机上我可以运行 xclock 但不能在远程机器上运行.....请帮忙!
-
当然我是在遇到同样的问题后才发现你的问题,想出了一个解决方案,并在这里填写了完整的问答:stackoverflow.com/questions/48235040/…我希望这也许也能为你解决.