Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Docker Ubuntu容器中启动Xserver_Ubuntu_Docker_Xserver_Lxc_Linux Containers - Fatal编程技术网

在Docker Ubuntu容器中启动Xserver

在Docker Ubuntu容器中启动Xserver,ubuntu,docker,xserver,lxc,linux-containers,Ubuntu,Docker,Xserver,Lxc,Linux Containers,我在我的容器中安装了最少的Ubuntu,我想让Xserver运行。 我需要XServer,因为我的应用程序需要meshlabserver,而meshlabserver本身需要XServer 我安装了xserverxorg和所有其他软件包,但当我试图通过 /usr/bin/X :0 它说: Fatal server error: (EE) xf86OpenConsole: Cannot open /dev/tty0 (No such file or directory) 我做错了什么?如何启动

我在我的容器中安装了最少的Ubuntu,我想让Xserver运行。 我需要XServer,因为我的应用程序需要meshlabserver,而meshlabserver本身需要XServer

我安装了xserverxorg和所有其他软件包,但当我试图通过

/usr/bin/X :0
它说:

Fatal server error:
(EE) xf86OpenConsole: Cannot open /dev/tty0 (No such file or directory)
我做错了什么?如何启动X服务器

更新:


相关问题:

在我的例子中,当我以特权模式启动容器时,它工作得很好:

docker run --privileged
所以XServer可以从主机访问一些设备(包括
/dev/tty0

在一般情况下,在特权模式下运行容器是一个坏主意,但在我的情况下,这没关系。
为了避免使用
--privileged
您还可以尝试
docker run
命令的
--device
选项

你需要真正的显示器吗?如果没有,Xvfb可能就足够了。XServer必须在容器中运行吗?您可以(重新)使用在主机上运行的一个。嗯。。。我真的不知道什么是Xvfb。我不需要应用程序的实际图形输出,当Xserver没有运行时,Meshlab服务器无法启动,并且没有以下输出:Meshlab服务器:无法连接到X服务器。我可以使用Xvfb“模拟”X服务器吗?我真的不需要连接到主机上的某个外部Xserver,因为我不需要容器外的任何地方的Xserver。我在我的应用程序中遇到了许多错误:libGL错误:找不到匹配的fbConfigs或视觉效果libGL错误:加载驱动程序失败:swrast OpenCV错误:在CreateWindowLessoPenglContext中断言失败(fbConfigs!=0)。您的应用程序似乎需要openGL,并且openGL和Xvfb(以及其他X服务器)似乎存在问题。您可能需要搜索“加载驱动程序失败:swrast”。不确定这是否可以轻易解决。否则,您唯一的选择可能是使用hosts X Server—假设它支持应用程序所需的功能。@AlexPetrenko:显然,您在那里的Mesa版本没有首先尝试使用softpipe。我认为最简单的方法是,构建一个只有软管道支持的定制Mesa变体,并将其安装到系统上。我认为流行的观点是,如果您使用特权模式,您应该只使用您默认信任的软件或自己构建的软件。并确保docker服务器只使用Unix套接字,而不是HTTP作为其API。我自己构建了这个容器(当然除了XServer),因此,是的,我相信它。对于那些关注并阅读此答案的人来说,此评论更具吸引力。我并不嫉妒你选择如何使用Docker的能力,但安全性很容易受到影响,因此提醒那些看了你的答案但不理解其含义的人可能会导致痛苦。只是想帮忙。