是否可以在无 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 应用程序
嵌入式linux开发,opencv移植,opencv-2.4.9移植,cmake-gui