docker - 无法从 Windows 容器显示 GUI 应用程序
问题描述
我有一个带有 GUI 应用程序的图像,带有 microsoft/windowsservercore 的基本图像。应用程序已正确安装在图像中,但是我无法在主机上显示它。在 Google 上阅读了几篇关于此的文章,他们建议安装 XServer for Windows,然后我们可以在主机上显示该应用程序。我一直在尝试运行以下命令(如大多数文章中所建议的那样),但是它什么也没做,而且我没有得到显示。请协助。
docker run --rm -it -e DISPLAY=127.0.0.1:0.0 eft
解决方案
这DISPLAY
对 Linux 容器很有用。
如此处所述:
WindwosServerCore 映像不附带用于 UI 应用程序的二进制文件,因此我怀疑这将永远适用于 servercore 映像,但微软内部人员可以使用新的更大的 WindwosServer 映像,我相信这些库完好无损。
该线程添加:
我知道您可以运行 GUI 应用程序,但渲染的元素不会显示在任何桌面上。Lars Iwer [MSFT] 在文章下方的讨论中写道:
在现在的容器图像中,GUI 元素将在会话 0 中呈现。UI 自动化应该与它一起工作(例如,以编程方式搜索窗口等)。
会话 0 是运行所有系统服务的会话,根据定义它是非交互式的。会话、工作站和桌面是 Windows (NT) 中的隔离手段,应用程序是否可以显示 UI 和接收用户交互取决于它是否可以访问带有桌面的工作站。
默认情况下,会话 0 中的进程没有。
然而,它曾经可以“允许服务与桌面交互”,并且也可以在会话 0 以外的其他会话中运行交互式服务(注意“现在就这样”)。因此,听听微软/Docker 团队对此的一些专家见解会很有趣……</p>
推荐阅读
- python - 从列表中随机选择时如何在字符串中使用变量?
- database - 在大型数据库中如何处理删除?
- gradle - 守护进程期间内存不足
- mysql - 如何创建返回没有元音的文本的存储过程
- python - 如何使用 selenium python 单击 href javascript:void(0) 和 hidefocus=true?
- javascript - 比较不同数组所需的解决方案
- regex - 如何限制 Google Forms Regex 中每行的行数和字符数
- node.js - Flash 消息在重定向时被删除
- reactjs - Reactjs DevExtreme DataGrid Popup 编辑自定义事件 CRUD
- firebase - 用于订单管理应用的 Firebase 数据库设计