Run graphical process in Docker container, detach and reconnect to the running GUI(在Docker容器中运行图形流程,断开并重新连接到正在运行的图形用户界面)
问题描述
假设我在Python中有一些计算需要很长时间,并且是从Spyder IDE运行的,因此可以轻松地检查结果并将其用于以后的进一步工作。
我想在驻留在服务器机器上的Docker容器内运行Spyder进程(即,不是我坐在前面的同一台机器)。我已经看到像LibreOffice和Chrome这样运行是可能的,所以这应该是可能的。但当用户从容器分离时,这些进程未保持活动状态。
现在的问题是:有没有一种方法可以在Docker容器中打开Spyder进程,手动启动计算,从Docker容器分离,然后重新连接到容器,以便我能够返回到仍在运行的Spyder图形用户界面,以便能够检查计算结果并继续使用它们?
为了简化用户(可能是多个人,但每个人都有自己的容器),我不希望将计算结果保存到一个文件中,然后重新读取它们以供进一步处理。
使用IPython,我可能只需使用Screen来保持解释器的活动状态。但我不知道如何用Spyder实现同样的目标。我可以以某种方式将Spyder"连接"到远程IPython解释器吗?
解决方案:
感谢@JanSuchotzki,我能够让X11-VNC-SERVER-CONTAINER与安装了Spyder的客户机容器一起运行,它可以使用服务器容器来显示图形。在额外设置了环境变量USER
之后,我就能够成功运行Spyder了。只需要调整X11服务器的屏幕大小,不切断Spyder图形用户界面的边缘,一切都很好!
推荐答案
在远程计算机上运行时,您可能希望使用类似vnc的代码。这基本上意味着运行Spyder的容器也充当VNC服务器。现在,您可以通过VNC-CLIENT附加到容器并检查当前状态(与您的IDE交互)。
这也适用于多用户设置,假设每个容器,或者更确切地说,内部运行的VNC服务器在另一个端口上工作。然后您可以简单地根据港口区分不同的集装箱。我已经创建了一个基本映像,用于使用X-Server和VNC-Server运行基于Debian的容器。你可以在我的Docker-Hub Account上看看。在那里您将找到客户端和服务器的映像。
这篇关于在Docker容器中运行图形流程,断开并重新连接到正在运行的图形用户界面的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在Docker容器中运行图形流程,断开并重新连接到正在运行的图形用户界面
基础教程推荐
- 使 Python 脚本在 Windows 上运行而不指定“.py";延期 2022-01-01
- 哪些 Python 包提供独立的事件系统? 2022-01-01
- 使用Python匹配Stata加权xtil命令的确定方法? 2022-01-01
- 将 YAML 文件转换为 python dict 2022-01-01
- 使用 Google App Engine (Python) 将文件上传到 Google Cloud Storage 2022-01-01
- 如何在Python中绘制多元函数? 2022-01-01
- 合并具有多索引的两个数据帧 2022-01-01
- 症状类型错误:无法确定关系的真值 2022-01-01
- 如何在 Python 中检测文件是否为二进制(非文本)文 2022-01-01
- Python 的 List 是如何实现的? 2022-01-01