Windows Subsystem for Linux (WSL) 上でGUIアプリケーションをDocker経由で実行する方法を簡単に始めることができる「WSL-GUI-Docker-Minimum」リポジトリの使い方を説明します。
こちらの記事もおすすめ
GitLabのセットアップ入門: Docker Composeを使用した簡単なガイド
はじめにDocker Composeを使用してGitLabをセットアップするための初心者向けのガイドです。このプロセスを通じて、ソースコードのバージョン管理とコラボレーションツールであるGitLabを簡単に導入できます。こちらの記事もおすす...
【秒速】JupyterlabをDocker-composeでワンパン起動【Python3.11】
比較的に新しいPython3.11を使った秒速で構築できるJupyterlabの環境です.
外部からのアクセスも可能です.
必要条件
- Windows 10 以降でWSL2がインストールされていること。
- WSL2統合が有効になっているDocker Desktop for Windowsがインストールされていること。
- Windows上で動作しているXサーバー(例:VcXsrv、Xming、またはWSLg)があること。
WSL で Linux GUI アプリを実行する
WSL で Linux GUI アプリの実行がどのようにサポートされるかについて説明します。
クイックスタートガイド
リポジトリをクローンする
まず、GitHubからこのリポジトリをあなたのローカルマシンにクローンします。
git clone https://github.com/Sunwood-ai-labs/WSL-GUI-Docker-Minimum.git
cd WSL-GUI-Docker-Minimum
環境を設定する
.env
ファイルに適切な値を設定します。提供されている.env
ファイルにはデフォルトの値が入っており、WSLgを使用している場合、そのままで動作する可能性があります。
Dockerコンテナをビルドして実行する
次に、docker-compose
コマンドを使用して、Dockerコンテナをビルドし、実行します。
docker-compose up --build
正しくセットアップされていれば、画面上にxeyes
アプリケーションのウィンドウが表示されます。
設定とファイル構成
.env
:Dockerコンテナに必要な環境変数を含みます。デフォルトの値と異なる設定を使用する場合は、値を変更してください。docker-compose.yml
:Dockerサービスを定義し、環境変数、ボリューム、実行コマンドを含みます。Dockerfile
:Debianベースのイメージを指定し、x11-apps
パッケージをインストールします。これにはxeyes
アプリケーションが含まれます。
この解説記事は「WSL-GUI-Docker-Minimum」リポジトリの基本的な使用方法を説明しており、ユーザーが簡単に始められるようになっています。
プロジェクトの特性や追加された機能、複雑な設定に合わせてセクションを調整してください。
各ファイルの解説
docker-compose.yml
version: '3.8'
services:
gui-app:
build:
context: .
image: gui-app-image
environment:
- DISPLAY=${DISPLAY}
- PULSE_SERVER=${PULSE_SERVER}
- WAYLAND_DISPLAY=${WAYLAND_DISPLAY}
- XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR}
volumes:
- /mnt/wslg:/mnt/wslg
- /tmp/.X11-unix:/tmp/.X11-unix
command: xeyes
- version : 使用するDocker Composeのバージョンを指定します。ここでは
3.8
を使用しています。 - services : 定義するサービス(この場合は
gui-app
)を指定します。 - build : Dockerイメージのビルド設定です。
context: .
はDockerfileが現在のディレクトリにあることを示します。 - image : ビルドした後のイメージの名前です。
- environment : コンテナ内で設定される環境変数を指定します。これらは
.env
ファイルから読み込まれます。 - volumes : ホストシステム(WSL)とコンテナ間で共有されるボリュームを指定します。これにより、Xサーバーとの通信が可能になります。
- command : コンテナが起動した際に実行されるコマンドです。ここでは
xeyes
を起動します。
Dockerfile
FROM debian:latest
RUN apt update -y &&\
apt-get install x11-apps -y;
- FROM : 使用するベースイメージを指定します。ここでは最新のDebianイメージを使用しています。
- RUN : イメージビルド時に実行されるコマンドです。ここではパッケージリストの更新と
x11-apps
パッケージのインストールを行います。x11-apps
にはxeyes
のようなX Window System用のベーシックなアプリケーションが含まれています。
.env
DISPLAY=:0
PULSE_SERVER=/mnt/wslg/PulseServer
WAYLAND_DISPLAY=wayland-0
XDG_RUNTIME_DIR=/run/user/1000/
- .envファイル : Dockerコンテナに必要な環境変数を定義します。
- DISPLAY : GUIアプリケーションが接続するXサーバーのディスプレイを指定します。
- PULSE_SERVER : 音声サポートのためのPulseAudioサーバーのアドレスを指定します。
- WAYLAND_DISPLAY : Waylandディスプレイサーバーを指定します。
- XDG_RUNTIME_DIR : XDG互換アプリケーション用のランタイムディレクトリを指定します。
これらのファイルは、WSL環境でGUIアプリケーションをDocker経由で実行するための基本的な構成を提供します。ユーザーはこれらのファイルを適宜編集し、独自の設定を追加することができます。
リポジトリ
GitHub - Sunwood-ai-labs/WSL-GUI-Docker-Minimum
Contribute to Sunwood-ai-labs/WSL-GUI-Docker-Minimum development by creating an account on GitHub.
参考サイト
WindowsのDocker環境でRust GUIアプリを動かす - Qiita
やりたいことRustでGUIアプリ開発をしたい手元にはWindowsマシンしかないWindows10のWSL(WSLg)でGUIアプリが動くようになった(投稿日 2022年11月26日)との…
Windows10のWSL(WSLg)でGUIアプリが動くようになった - Qiita
はじめにWSLでGUIを動かすためのWSLgがWindows10でも標準的に使用できるようになりました.Windows10でも簡単にWSL上でGUIアプリを動かすことができるようになったのでその紹…
WSL で Linux GUI アプリを実行する
WSL で Linux GUI アプリの実行がどのようにサポートされるかについて説明します。
コメント