当前位置: 首页 > 知识库问答 >
问题:

当我在docker容器中启动X服务器时,主机屏幕关闭

端木夕
2023-03-14

我创建了带有X服务器的泊客容器。我用它来进行一些屏幕外的 OpenGL 渲染。这个容器应该在任何系统(运行或不运行X服务器)上运行,如果它存在,它应该使用硬件GPU(所以我不能使用xvfb)。

当我在没有GUI的类似服务器的系统上使用此容器时,一切都可以完美地工作。但是,当我在 Ubuntu 14.04 桌面上运行容器时,每次我在容器中启动 X 服务器时,屏幕都会关闭。

我以 --priviliged 开始容器,因此 /dev 文件夹与容器共享。我认为它涉及某种冲突。

有没有办法在容器内启动X,例如主机X服务器仍在工作?

更新:

我在Xorg.0.log中看到以下内容:

AIGLX: Suspending AIGLX clients for VT switch
(II) NOUVEAU(0): NVLeaveVT is called.

更新:

我可以用xvfb代替真正的Xorg服务器吗?它支持实际的硬件GPU渲染吗?

共有2个答案

秦学林
2023-03-14

如果您不介意将 CPU 用于 OpenGL,则可以使用具有 GLX 扩展的 Xdummy 视频驱动程序在容器内设置 X 服务器。但是,当然,您将无法看到任何东西,因为视频驱动程序是假人。

如果您确实想玩GUI,请尝试TurboVNC VirtualGL并使用XDummy服务器作为3D X服务器

申思远
2023-03-14

我不认为这会起作用 - 你实际上是在尝试使用两个X服务器 - 主机和容器 - 我怀疑他们都希望独占使用视频卡。

相反,您可以通过绑定安装X服务器套接字,从容器中使用主机上的X服务器。这个如此回答说明了一切:https://stackoverflow.com/a/25334301/4332

我不确定这对您的特殊情况是否有帮助,但是我完全不明白为什么您需要一个运行在容器中的XServer。我认为你应该仍然可以用特权访问GPU。

 类似资料:
  • 问题内容: 我有一个Rails应用程序,我想在机器启动时自动启动服务器。现在,我进入目录,然后键入命令。如何配置机器以在引导时运行Rail服务器?我正在使用Ubuntu和Rails 3.0.0。 问题答案: 您可以为此使用cron作业。要添加cron作业,请使用命令。比您可以定义一个cron作业,该作业在启动时运行,然后使用重新启动。 所以你会有类似的东西:

  • 问题内容: 在我的Dockerfile中,我试图安装多个服务,并希望在启动容器时使它们全部自动启动。服务之一是mysql,当我启动容器时,我看不到mysql服务正在启动。当我尝试手动启动时,出现错误: Dockerfile: 我的start.sh文件: Docker构建: Docker运行: 我检查了图像,也无济于事。如何使用通过systemctl / service命令启动的服务启动容器。 问题

  • 在我的Dockerfile中,我试图安装多个服务,并希望在启动容器时使它们都自动启动。其中一个服务是mysql,当我启动容器时,我没有看到mysql服务启动。尝试手动启动时,出现错误: DockerFile: 我已经检查了映像,但这也没有帮助。如何用使用systemctl/service命令启动的服务启动容器。

  • 当我运行以下命令时,我将得到错误: 检测到体系结构x86-64。将主机名设置为。 正在从随机生成器初始化机器ID。 无法移动剩余的userspace进程,忽略:输入/输出错误

  • 当我在Eclipse中的服务器上运行我的应用程序时,我会得到这样的消息:“Tomcat V8.0服务器在localhost上所需的端口8080已经在使用中。该服务器可能已经在另一个进程中运行,或者某个系统进程正在使用该端口。要启动该服务器,您需要停止其他进程或更改端口号”。其他项目关闭。有人能帮我解决这个问题吗?我是爪哇初学者。