Debian コンテナで xeyes を実行し、目玉を確認するところまで。
前提
- OS: Windows 11 Pro 21H2 ビルド 22000.556
- Docker: Docker version 20.10.12, build e91ed57
- WSL2 Kernel: 5.10.60.1-microsoft-standard-WSL2
- WSLg で GUI アプリが実行できること
事前準備
Docker Desktop の WSL Integration を有効にする
Docker Desktop では、 WSL2 ディストリビューションから Docker Desktop の Docker Engine へアクセスするための仕組み「WSL Integration」を提供している。
WSL Integration を有効にすることで、 WSL ディストリビューション内で docker コマンドが実行可能となり、そのコマンドで Docker Desktop の Docker Engine へアクセスできるようになる。
- タスクトレイ内の Docker アイコン右クリック ->
Setting
->Resources
->WSL INTEGRATION
を選択- Docker を実行する WSL2 ディストリビューションを選択
- 今回は、デフォルトディストリビューションの
Ubuntu-20.04
を利用するため、Enable integration with my default WSL distro
にチェックを入れる
Docker で GUI アプリを実行
Debian コンテナをで、 xeyes
を実行する。
WSL ディストリビューション起動
WSL2 ディストリビューションの、 Ubuntu-20.04
を起動。
コンテナ起動
WSL2 のディストリビューションには、 WSLg で GUI を実行するための環境変数とディレクトリが用意されている。 それをマウントしながら Docker コンテナを起動する。
Ubuntu 上で以下コマンドを実行。
docker run -it --rm \
-e DISPLAY=$DISPLAY \
-e WAYLAND_DISPLAY=$WAYLAND_DISPLAY \
-e XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR \
-e PULSE_SERVER=$PULSE_SERVER \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-v /mnt/wslg:/mnt/wslg \
debian bash
WSLg に必要な環境変数・ディレクトリは以下 6 つ。
-e DISPLAY=$DISPLAY
-e WAYLAND_DISPLAY=$WAYLAND_DISPLAY
-e XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR
-e PULSE_SERVER=$PULSE_SERVER
-v /tmp/.X11-unix:/tmp/.X11-unix
-v /mnt/wslg:/mnt/wslg
xeyes をインストールして実行
起動した Debian コンテナ上で以下コマンドを実行。
apt update
apt install -y x11-apps
xeyes
これで、Windows 上に、 xeyes の目玉が表示されるはず。
0 件のコメント:
コメントを投稿