GNU/Linux >> Linux の 問題 >  >> Linux

Linux – Lxc;可能な限り最小のX11でイメージをデプロイしますか?

現在、X11機能を備えたLXCコンテナーをセットアップすることは可能ですか?利用可能な最軽量のX11コンテナ(メモリに関して)を楽しみにしています。ハードウェアアクセラレーションはプラスですが、必須ではありません。

現在それが不可能であるか、すぐに利用できる場合、それをサポートするためにどの機能をまだ実装する必要があるかがわかっていますか?

承認された回答:

はい、LXCコンテナ内で完全なX11デスクトップ環境を実行することは可能です。

現在、私はArchLinuxでこれを行っています。標準のパッケージマネージャーのインストールから何かを取り除こうとしているわけではないので、「軽い」とは言いませんが、非常にうまく機能していることを確認できます。

カーネルドライバは、コンテナだけでなくホストにもインストールする必要があります。グラフィックドライバ(私は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

現在のvtで2番目のXディスプレイを使用していませんが、まったく異なるものを使用しています(CTRL + ALT + Fnを使用してこれの多くを切り替えることができます)。

Slimを使用していない場合は、次のような構成を使用して、別のvtでXを開始できます。

 /usr/bin/startx -- :10 vt10

これにより、ディスプレイ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

そして、コンテナ内にデバイスを作成する必要があります:

 # 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

また、入力デバイスを手動で構成しました(
コンテナーに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

上記はファイル/etc/X11/xorg.conf.d/10-input.conf

にあります 関連:X11アプリケーションをリモートで実行する方法は?

それが役立つかどうかはわかりませんが、頑張ってください!


Linux
  1. Linuxコンテナレジストリを管理する方法

  2. 私のお気に入りの5つのLinuxコンテナイメージ

  3. Linux で .dll を使用可能

  1. Linuxコンテナの舞台裏

  2. docker は Linux コンテナー内で実行できますか?

  3. LXD コンテナーと静的 IP を使用したネットワーキング

  1. Ubuntu16.04でLXCを使用してLinuxコンテナをセットアップする

  2. LinuxでのJQコマンドと例

  3. LXC コマンドを使用して LXC Linux コンテナを作成および起動する方法