3 minute read

WSL には WSLg があるので、GUI アプリも使用することが可能です。WSL Container は WSL の名を冠してはいますが、2026年7月時点では WSLg には対応していないようです。

コンテナ内から GUI アプリを使うか? という話もあるかもしれませんが、使い捨てのブラウザ環境だったり、一時的な開発ツールを動作させたりする際に使うこともあるので、何か方法がないか調べてみました。

WSL Container から WSLg は使えない?

WSLg が使える場合、WSL 環境からは /mnt/wslg がマウントされて必要なファイルが提供されます。WSLg が利用可能な WSL だとそのディレクトリが参照できます。

/mnt/wslg

このファイルを使って GUI の機能が提供されるのですが、この /mnt/wslg は自動でマウントされるので、どうやって WSL Container からアクセスするかが不明です。

socat

そこで、TCP でも UNIX ソケットでもいろいろリレーできてしまう、socat というツールを使います。

インストール

socat は WSLg を使用できる WSL 環境にインストールします。手元に debia があったので、今回は debian で試していますが、普通に apt update && apt install -y socat でインストール可能です。

socat

インストールが完了したら、同じ WSL にて 2か所確認をします。1 つは X11 の UNIX SOCKET のパスが /tmp/.X11-unix/X0 で間違いないかどうか。もう1つは WSL の IP アドレスです。IP アドレスは ip addr コマンドなどで確認が可能です。

確認事項

この場合、IP アドレスは 172.18.113.216 となります。

socat 実行

socat コマンドは、WSL 環境で以下のように実行します。

socat TCP-LISTEN:6000,fork UNIX-CONNECT:/tmp/.X11-unix/X0

socat

これで 6000/tcp で待ち受けて、それを /tmp/.X11-unix/X0 へとリレーする形になります。実行するとフォアグランドで実行されるので、プロンプトは戻ってきませんが、このままターミナルは閉じないようにします。

コンテナ用意 (wslc)

PowerShell やエクスプローラーから Containerfile というファイル名のテキストファイルを作成し、以下の内容を保存します。

FROM debian

RUN apt update
RUN apt install -y firefox-esr firefox-esr-l10n-ja fonts-noto-cjk

PowerShell でこの Containerfile を保存したディレクトリへ移動し、コンテナイメージをビルドします。

wslc build -t fx .

wslc build

Firefox 実行

ビルドしたイメージを使って Firefox を実行するのですが、環境変数 DISPLAY を設定する必要があります。ここで先ほど WSL の方で確認した IP アドレスを指定して、PowerShell から以下のように実行します。

wslc run --rm -it -e DISPLAY=172.18.113.216:0.0 fx firefox-esr

firefox 実行

いくつか WARNING が表示されると思いますが、

firefox

無事に Firefox が起動しました。

動作確認

インターネットへの接続も問題なさそうです。これでコンテナを閉じるたびにきれいにリセットされるブラウザを用意できました。

設定を残したい場合

逆に、設定やブックマークなどを残したい場合は、ブラウザを閉じるたびにリセットだと面倒ですよね。その場合は、

wslc run --rm -it -v .\mozilla:/root/.mozilla -e DISPLAY=172.18.113.216:0.0 fx firefox-esr

/root/.mozilla をコンテナ外に出しておけば、コンテナを閉じても設定が残る形になります。

まとめ

リレーするために WSL 環境が必要だったり、都度 IP アドレスを確認する必要があったりと、なんだか本末転倒のような気もしますが (そのまま WSL から GUI アプリを使えばいいのでは、と思わなくもない)、こういう方法もあるんだ、という話です。socat 自体はポート転送などにも使えるので、他にも使い道があるかもしれないですしね。

更新日時: