WSL上でDockerを使ってGUIアプリを実行する簡単ガイド

チュートリアル

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 アプリの実行がどのようにサポートされるかについて説明します。

コメント

タイトルとURLをコピーしました