ルートレスドッカーコンテナでGUIアプリケーションを実行するには?

ルートレスドッカーコンテナでGUIアプリケーションを実行するには?

ホストデバイスで実行すると、DockerコンテナのGUIアプリケーションが正しく実行されますdocker run -it --net=host -e DISPLAY=$DISPLAY <image>xhost +ただし、ルートレスのdockerd(docker cliを使用するときにenvを使用)の場合、DOCKER_HOST=unix://$XDG_RUNTIME_DIR/docker.sockGUIアプリケーションは機能せずにメッセージが表示されます。

Unable to init server: Could not connect: Connection refused
Error: cannot open display: :0

それでは、ホストディスプレイに接続するときにルートとルートレスドッカーコンテナの違いは何ですか?ルートレスドッカーコンテナでGUIを使用する方法は?

ベストアンサー1

Rootless Dockerでは--net=host

ルートレスモードの既知の制限事項:

ホストネットワーク(docker run --net=host)もRootlessKitによって内部的に命名されます。

XServerソケットを共有して表示できます。

docker run -it --volume=/tmp/.X11-unix/:/tmp/.X11-unix/ -e DISPLAY=$DISPLAY <image>

xhost +ルートレスコンテナのUIDは、すでにホストシステムのDocker実行ユーザーにマップされているため、必要ありません。

おすすめ記事