Linux - LXC;使用最小的 X11 部署镜像

lur*_*her 19 linux xorg x11 container lxc

目前是否可以设置具有 X11 功能的LXC 容器?我期待最轻的可用 X11 容器(内存方面),硬件加速是一个加分项,但不是必需的。

如果目前无法实现或现成可用,是否知道需要实现哪些功能才能支持它?

sta*_*fry 15

是的,可以在 LXC 容器内运行完整的 X11 桌面环境。

现在,我在 Arch Linux 上这样做。我不会说它是“轻量级”的,因为我还没有尝试从标准包管理器安装中删除一些东西,但我可以确认它确实工作得很好。

您必须在主机和容器中安装任何内核驱动程序。诸如图形驱动程序之类的东西(我使用的是 nvidia)。您必须通过配置您的 container.conf 来允许它在容器内访问 dev 中的设备节点。然后您需要确保这些设备节点是在容器内创建的(即 mknod)。

所以,回答你的问题:是的,它确实有效。如果我能提供更多帮助或提供更多详细信息,请告诉我。

--- 提供了附加信息 ---

在我的容器中... /etc/inittab 以运行级别 5 启动并启动“slim” Slim 被配置为使用 vt09:

 # Path, X server and arguments (if needed)
 # Note: -xauth $authfile is automatically appended
 default_path        /bin:/usr/bin:/usr/local/bin
 default_xserver     /usr/bin/X
 xserver_arguments   -nolisten tcp vt09
Run Code Online (Sandbox Code Playgroud)

我没有在我当前的 vt 上使用第二个 X 显示器,而是一个完全不同的显示器(我可以使用 CTRL+ALT+Fn 在许多这些之间切换)。

如果您不使用 slim,您可以使用这样的构造在另一个 vt 上启动 X:

 /usr/bin/startx -- :10 vt10
Run Code Online (Sandbox Code Playgroud)

这将在显示 :10 上启动 X 并将其放在 vt10 (CTRL+ALT+F10) 上。这些不需要匹配,但我认为如果匹配会更整洁。

您确实需要容器配置才能使相关设备可用,如下所示:

 # XOrg Desktop
 lxc.cgroup.devices.allow = c 4:10 rwm    # /dev/tty10 X Desktop
 lxc.cgroup.devices.allow = c 195:* rwm  # /dev/nvidia Graphics card
 lxc.cgroup.devices.allow = c 13:* rwm   # /dev/input/* input devices
Run Code Online (Sandbox Code Playgroud)

您需要在容器中制作设备:

 # display vt device
 mknod -m 666 /dev/tty10 c 4 10

 # NVIDIA graphics card devices
 mknod -m 666 /dev/nvidia0 c 195 0
 mknod -m 666 /dev/nvidiactl c 195 255

 # input devices
 mkdir  /dev/input           # input devices
 chmod 755 /dev/input
 mknod -m 666 /dev/input/mice c 13 63 # mice
Run Code Online (Sandbox Code Playgroud)

我还手动配置了输入设备(因为我们在容器中没有 udev)

 Section "ServerFlags"
         Option "AutoAddDevices" "False"
 EndSection

 Section "ServerLayout"
     Identifier     "Desktop"
     InputDevice    "Mouse0" "CorePointer"
     InputDevice    "Keyboard0" "CoreKeyboard"
 EndSection

 Section "InputDevice"
     Identifier "Keyboard0"
     Driver "kbd"
     Option "XkbLayout" "gb"
 EndSection

 Section "InputDevice"
     Identifier "Mouse0"
     Driver "mouse"
     Option "Protocol" "auto"
     Option "Device" "/dev/input/mice"
     Option "ZAxisMapping" "4 5 6 7"
 EndSection
Run Code Online (Sandbox Code Playgroud)

上面的文件 /etc/X11/xorg.conf.d/10-input.conf

不确定这些是否有帮助,但祝你好运!