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容器中运行图形流程,断开并重新连接到正在运行的图形用户界面
基础教程推荐
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
