Linuxマシンをセットアップして、複数のゲストOSを実行しようとしています。1つはWindows VMで、もう1つはLinuxコンテナです。ここでの目標は、基本オペレーティングシステムを自由に操作してホストハードウェアを操作しながら、ホストシステムを台無しにしないようにすることです。結局、コンテナでデスクトップを実行することに加えて、グラフィックアクセラレーションシミュレーションなどを実行したいと考えています。Dockerには、コンテナのgitのようなバージョンが組み込まれているので、それを使用することをお勧めします。おそらくlibvirtはLXCでも同じように機能しますが、Dockerの特権モードを使用すると、コンテナーにデバイスを構成する必要がなくなります。
少し調べていくつか答えを出してみましたが、すべてをまとめるのに苦労しています。
LXCからXを実行 は、コンテナを(つまり)で構成する方法を確認するのに役立ちました:
lxc.cgroup.devices.allow = c 226:0 rwm
そして使用
mknod -m 666 dri/card0 c 226 0
コンテナ内でホストデバイスに接続します。
cuda-DockerコンテナーからGPUを使用する から、同じ設定をLXCバックエンドのDockerで機能させることができることがわかりました。
Dockerコンテナーが特権モードで実行されている場合、この追加の構成なしでGPUに正常にアクセスできるように見えました。そこで、ベースシステム、インストールされたグラフィックスドライバー、xorg-server、xorg-xinit、およびウィンドウマネージャーを起動してテストしました。
# startx
Cannot run from a console (or some message like that)
さて、私はtty2にいると思いました。
# tty
/dev/console
それは私が期待したものではありません。
# chvt 2
# tty
/dev/tty2
まあ、それはうまくいったようです。もう一度# startx
を試してみましょう。カーソルを中央にしてウィンドウマネージャを起動しました。マウスが反応しない。キーボードが応答しない。 Ctrl-Alt+F3
でttyを変更してみましょう。応答なし。まあ、それは私が冷たい再起動する必要があるようです。
# tty
/dev/console
# chvt 2
# tty
/dev/console
何?今は変更できませんか?
もう一度試してみたところ、ttyを変更するようになり、startxでコンピューターを再びフリーズしました。
それで、私は今行き詰まりにいます。私は本当にコンテナを使用できるようにしたい-Dockerを優先し、libvirtを備えたLXCも受け入れられる-無駄のないホストOSを維持しながら、日常のオペレーティングシステムとして実行する。
ここで特権モードでDockerを使用するか、明示的なLXCバックエンドを使用して上記のオプションを試すのが最善ですか?
Libvirt(おそらくvagrant-libvirtの下)を使用してWindows vmを管理することをすでに計画しているので、この場合、libvirtまたはvagrant-LXCを使用することはほぼ同じですか?
編集: LXC vs. Docker を読むと、DockerおよびDockerコンテナーは単一アプリケーション環境向けであるため、日常の運用としてDockerではなくLXCを使用するのが最善の方法であると感じますシステム。考え?
編集:私は、Dockerのように、cgroupsとmknodの手順をバイパスできるlxc-deviceコマンドがあることを発見しました。以前はxを起動してシステムをフリーズさせることができましたが、現在はエラーが発生しています。おそらく誰もそこにいないようなので、おそらく私はこれを最終的に理解することができます。
更新:私はマウスを動かしています。ゲストには、xf86-input-mouseとxf86-input-keyboardをインストールしました。ホストで、私は以下を実行しました:
# lxc-device -n g1 add /dev/input/mice
# lxc-device -n g1 add /dev/dri/card0
# lxc-device -n g1 add /dev/dri/controlD64
# lxc-device -n g1 add /dev/dri/renderD128
# lxc-device -n g1 add /dev/fb0
# lxc-device -n g1 add /dev/tty2
動作します!
この質問 には私が必要とする答えがありました。もちろん、私はlxc-device
設定ファイルのcgroup定義の代わりに。ただし、私の場合、別のttyでキーボードを起動した場合にのみ、キーボードをXで動作させることができました。