4

X11 ソケットに直接アクセスして、ネストされた X サーバー Xephyr を Docker コンテナー内で実行しようとしていますが、現在理解できない奇妙なグラフィック エラーが発生しています。

の内容Dockerfileはあくまで

FROM ubuntu:14.04

RUN apt-get update
RUN apt-get install -qqy xserver-xephyr

# Clean up APT when done.
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

で構築する

sudo docker build -t xephyrtest .

そしてそれを実行する

sudo docker run -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix xephyrtest Xephyr :1

以下を出力します。

Xephyr unable to use SHM XImages
Initializing built-in extension Generic Event Extension
Initializing built-in extension SHAPE
Initializing built-in extension MIT-SHM
Initializing built-in extension XInputExtension
Initializing built-in extension XTEST
Initializing built-in extension BIG-REQUESTS
Initializing built-in extension SYNC
Initializing built-in extension XKEYBOARD
Initializing built-in extension XC-MISC
Initializing built-in extension SECURITY
Initializing built-in extension XINERAMA
Initializing built-in extension XFIXES
Initializing built-in extension RENDER
Initializing built-in extension RANDR
Initializing built-in extension COMPOSITE
Initializing built-in extension DAMAGE
Initializing built-in extension MIT-SCREEN-SAVER
Initializing built-in extension DOUBLE-BUFFER
Initializing built-in extension RECORD
Initializing built-in extension DPMS
Initializing built-in extension Present
Initializing built-in extension DRI3
Initializing built-in extension X-Resource
Initializing built-in extension XVideo
Initializing built-in extension XVideo-MotionCompensation
Initializing built-in extension SELinux
Initializing built-in extension GLX
[dix] Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/100dpi/:unscaled, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/75dpi/:unscaled, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/Type1, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/100dpi, removing from list!
[dix] Could not init font path element /usr/share/fonts/X11/75dpi, removing from list!

ここではXephyr unable to use SHM XImages、Xephyr が正常に動作している私のホストには表示されないため、最初の行が最も重要なようです。

Xephyr ウィンドウがポップアップ表示されますが、:1ディスプレイを使用するアプリで奇妙な不具合が発生します。たとえばDISPLAY=:1 gedit、次のようになります (マウスがウィンドウ内を移動すると、出力が急速に変化します)。

ここに画像の説明を入力

コンテナー内で使用できないことを意味し、どのSHM XImagesように修正できますか?

4

3 に答える 3

0

MIT-SHM 拡張機能は、同じコンピューター上で実行されている限り、クライアントとサーバー間で (主に) 画像をより高速に表示できるようにする方法です。これは、SysV shm 共有メモリ オブジェクトを作成することによって行われます。これにより、クライアントはイメージ データを書き込み、X サーバーによって直接表示できます。ソケットを介してイメージをシリアル化する必要はありません。

Docker コンテナーがこれをブロックし、gedit がそれに依存していても驚かないでしょう。

于 2015-04-10T09:54:21.500 に答える