是否可以在无 GUI 的服务器上运行嵌入 GUI 环境的 docker 容器并从远程 GUI 客户端打开 GUI 会话?

Posted

技术标签:

【中文标题】是否可以在无 GUI 的服务器上运行嵌入 GUI 环境的 docker 容器并从远程 GUI 客户端打开 GUI 会话?【英文标题】:Is it possible to run a docker container embedding a GUI environment on a GUI-less server and open the GUI session from a remote GUI client? 【发布时间】:2020-04-11 22:07:30 【问题描述】:

我有一个无 GUI 的服务器(没有任何桌面环境或 Ubuntu 服务器的新 Debian,没有 X 服务器,先验)。 我考虑安装 docker 并拉取一个基于官方 Ubuntu 的容器,并在其上添加一个桌面环境,以便使用常规的 GUI 应用程序。

我在 LAN 中有第二台计算机,安装的是常规 Debian Xfce 或 Xubuntu。

是否可以使用第二台计算机打开容器的桌面会话(在无 GUI 服务器上运行)? (我希望尽可能使用标准的 Debian 或 Ubuntu 包,避免使用外部 PPA 包)

最先进的小型技术:

我见过 NoMachine 解决方案: 在 Docker for Linux 中构建和部署 NoMachine 桌面和应用程序 https://www.nomachine.com/DT10O00161

我的问题是,Docker 是在 GUI 还是无 GUI 的主机上运行并不清楚。 (而且我更喜欢使用来自 Debian 或 Ubuntu 存储库的软件包)

我还看到了 Consol docker 图像,例如: 控制台/ubuntu-xfce-vnc https://hub.docker.com/r/consol/ubuntu-xfce-vnc/

我不确定,但它们似乎也可以在基于 GUI 的环境中运行。

我还看到了一个使用 Xvfb 和 x11vnc 的解决方案(抱歉,这是一个法语网页,但我希望使用常规的在线工具可以正常翻译): Utiliser VNC comme interface graphique avec un conteneur docker https://www.geeketfier.fr/post/docker-display-on-windows/

这个也是,我不确定,但这个解决方案似乎也在基于 GUI 的环境中运行。

【问题讨论】:

【参考方案1】:

我找到了解决我的问题的 docker 镜像:docker-x2go-xubuntu: https://hub.docker.com/r/paimpozhil/docker-x2go-xubuntu

我在无 GUI 的服务器上构建它并按照 docker hub 上的说明运行它。

在我的第二台计算机上,我打开了一个指向 docker 接口的无 GUI 服务器的 ssh 隧道:

ssh -CY -L 33333:container.docker.ip:2222 -l guilessuserlogin guiless.server.ip

(我在 GUIless 服务器上通过 ifconfig 检索了容器 IP)

在第二台计算机上,我从常规存储库安装了 x2goclient,并配置了一个会话以连接到 localhost:33333

一旦连接,docker 机器的 GUI 桌面就完全可用了。

【讨论】:

以上是关于是否可以在无 GUI 的服务器上运行嵌入 GUI 环境的 docker 容器并从远程 GUI 客户端打开 GUI 会话?的主要内容,如果未能解决你的问题,请参考以下文章

Debian 在没有桌面的情况下启动 Qt GUI 应用程序

关闭小部件时出现嵌入式 Qt GUI 工件

在 Python GUI 中嵌入 C++ 程序

嵌入式linux开发,opencv移植,opencv-2.4.9移植,cmake-gui

是否可以使用Git扩展或Git GUI来管理远程linux ftp服务器上的文件,如本地存储库

推荐一款不错的嵌入式GUI(玲珑GUI)及在嵌入式linux上的移植