LXDコンテナ内にブラウザをインストールし、ホストOS上で実行する

LXDコンテナ内にブラウザをインストールし、ホストOS上で実行する

私は、Brave ブラウザを LXD コンテナ (Voidlinux が望ましい、または linuxMint) 内にインストールし、ホスト OS 内にそのアプリのショートカットを作成し、コンテナ内で実行されるという点を除いて他の Linux アプリと同じように起動しようとしています。Ubuntu 以外のホスト OS でディスプレイ部分または lxc プロファイルを構成する方法がわかりません。

以下のチュートリアルを試しても成功しません:

https://blog.simos.info/running-x11-software-in-lxd-containers/

たとえば、

environment.PULSE_SERVER: unix:/home/ubuntu/pulse-native
connect: unix:/run/user/1000/pulse/native
listen: unix:/home/ubuntu/pulse-native

Gentoo ディストリビューション内で何を置き換えることができますかubuntu?user

lxc exec mycontainer -- sudo --user ubuntu --login 

voidlinux コンテナでは動作しません。

答え1

リンクをクリックしませんでしたが、コンテナで X11 アプリを実行するには、X サーバーの Unix ドメイン ソケットをコンテナに取り込む必要があります。

それで、

  1. lxc 設定を構成して、ホストの X11 ソケットをコンテナにコピーします。

  2. ソケットが抽象UNIXソケットの場合、UNIXドメインバージョンを使用するようにXを設定します。

  3. ソケットを /tmp 以外のディレクトリにコピーすると、lxc コピー操作後に /tmp ディレクトリが消去され、ソケットが消えてしまいます。

  4. ソケットを、X11が通常配置する/tmpディレクトリに移動する

  5. ユーザーシェルで DISPLAY=:0 をエクスポートする

おそらく、これはファイルシステムとホストの他の部分からのプロセスの分離のみを提供しますが、X11 自体はアプリとデスクトップ ビューの分離を提供しないことに注意してください。

関連情報