首页 > 解决方案 > 无法从 Windows 容器显示 GUI 应用程序

问题描述

我有一个带有 GUI 应用程序的图像,带有 microsoft/windowsservercore 的基本图像。应用程序已正确安装在图像中,但是我无法在主机上显示它。在 Google 上阅读了几篇关于此的文章,他们建议安装 XServer for Windows,然后我们可以在主机上显示该应用程序。我一直在尝试运行以下命令(如大多数文章中所建议的那样),但是它什么也没做,而且我没有得到显示。请协助。

docker run --rm -it -e DISPLAY=127.0.0.1:0.0 eft

标签: docker

解决方案


DISPLAY对 Linux 容器很有用。

如此处所述

WindwosServerCore 映像不附带用于 UI 应用程序的二进制文件,因此我怀疑这将永远适用于 servercore 映像,但微软内部人员可以使用新的更大的 WindwosServer 映像,我相信这些库完好无损。

线程添加

我知道您可以运行 GUI 应用程序,但渲染的元素不会显示在任何桌面上。Lars Iwer [MSFT] 在文章下方的讨论中写道:

在现在的容器图像中,GUI 元素将在会话 0 中呈现。UI 自动化应该与它一起工作(例如,以编程方式搜索窗口等)。

会话 0 是运行所有系统服务的会话,根据定义它是非交互式的。会话、工作站和桌面是 Windows (NT) 中的隔离手段,应用程序是否可以显示 UI 和接收用户交互取决于它是否可以访问带有桌面的工作站。
默认情况下,会话 0 中的进程没有。
然而,它曾经可以“允许服务与桌面交互”,并且也可以在会话 0 以外的其他会话中运行交互式服务(注意“现在就这样”)。因此,听听微软/Docker 团队对此的一些专家见解会很有趣……</p>


推荐阅读