在Docker Ubuntu容器中启动Xserver

Ale*_*nko 4 ubuntu xserver lxc docker linux-containers

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

我安装了xserver-xorg和所有其他软件包,但是当我尝试在容器中启动X时

/usr/bin/X :0
Run Code Online (Sandbox Code Playgroud)

它说:

Fatal server error:
(EE) xf86OpenConsole: Cannot open /dev/tty0 (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?如何启动X服务器?

更新:

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

Ale*_*nko 9

在我的情况下,当我以特权模式启动容器时它很好用:

docker run --privileged
Run Code Online (Sandbox Code Playgroud)

因此XServer可以从主机(包括/dev/tty0)访问某些设备.

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

  • 评论更多的是那些追随并阅读了这个答案的人.我不会嫉妒你选择使用Docker你喜欢的方式,但安全性很容易受到损害,所以提醒那些看你的答案而不理解其含义的人会导致痛苦.只是想帮忙. (4认同)
  • 我认为,流行的智慧是,如果您使用特权模式,您应该只使用您隐含信任或自己构建的软件.并确保docker服务器仅使用Unix套接字而不使用HTTP作为其API. (2认同)