JavaScriptを有効にしてください

【Docker】XWindow を使用してDocker上のGUIアプリをホスト側で使用する

 ·  ☕ 2 分で読めます

【Docker】XWindow を使用してDocker上のGUIアプリをホスト側で使用する

Docker上の GUIアプリを XWindow を使用してDocker上のGUIアプリをホスト側で使用する

環境

  • Windows 11
  • Docker version 20.10.21

Host側の Windowsの用意

Xサーバーを導入します。

winget install marha.VcXsrv
cd "C:\Program Files\VcXsrv"
XLaunch

C:\Program Files\VcXsrv にない場合はスタートメニューなどから探してください。
起動後、すべてデフォルト設定で起動して問題ないです。(僕の場合はこれで動きました。

Mac の場合は XQuartz を入れれば良いようです。

DockerFile の用意

Ubuntu LTS に X11アプリケーションを入れたものを用意します。
DISPLAYhost.docker.internal:0:0 を設定することでホスト側のXサーバーに接続させます。

1
2
3
4
5
6
7
8
9
FROM ubuntu:latest

# X Windows System 設定
# DISPLAY=Xサーバー名:ディスプレイ番号.スクリーン番号
ENV DISPLAY host.docker.internal:0.0

RUN apt-get update -y\
    && apt-get install x11-apps -y

実行 & 確認

DockerFileをビルドして実際に xeyes を実行してみます。

docker image build . -t x11
docker run --rm -it -t x11 xeyes

以下のような目が出てくれば成功です!
xeyes

一応コマンドの説明を載せておきます。

docker image build . -t [コンテナ名]
docker run --rm -it -t [コンテナ名] [コマンド]

これは元々 Andoroid Studio をDocker内で実行させてHOST側で操作出来ないかと思いやってみました。
Android Studio を実行して操作できることを確認できました。

参考

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer