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