🌊
Docker上のX11GUIをWindowsで使う
DISPLAY host.docker.internal:0.0を使う
WSL嫌いの人も安心
------------------- ↓ 前書はここから ↓-------------------
Docker上に載ってるブラウザをWindowsで見る方法はないかと調査。
( ^ω^)・・・
別の方法で解決...
せっかく調べたので記載するか
WSLあるから使う機会はないかもな
ヾ(・ω<)ノ" 三三三● ⅱⅲ コロコロ♪
------------------- ↓ 本題はここから ↓-------------------
Docker Desktopをインストール
Windows上にWindows上にDocker Desktopをインストールする。
Windows10を最新にしておくのが前提
ストアページからアプリ インストーラーをインストールする
PowerShellを起動し以下のコマンドを実行
winget install Docker.DockerDesktop
VCXSRV(またはX410)のインストール
Vcxsrvの場合
XサーバーがWindows側に必要なので別途用意する
(WSLgは現状WSL越しじゃないと使えないっぽい)
winget install marha.VcXsrv
デスクトップアイコンやスタートメニューからXLaunchを起動
設定項目は特に変更せずNextを連打
Windowsファイヤーウォールの設定をOKする。
X410の場合
ストアからインストール
タスクバーを右クリックしてAllow Public Accessにチェックを入れる
Dockerfile作成
X11アプリを含むdockerイメージを作成。
DISPLAY値を localhost
ではなく host.docker.internal
とする
Dockerfile
FROM debian:stable-slim
RUN apt-get update -y\
&& apt-get install x11-apps -y
ENV DISPLAY host.docker.internal:0.0
RUN useradd -ms /bin/bash xuser
USER xuser
WORKDIR /home/xuser/
CMD ["xeyes"]
実行
docker build . -t xeyes:1.0
docker run --rm -it -t xeyes:1.0
<●><●>
Discussion
Docker上からGUI利用するために参考にしてうまくいきました、ありがとうございます!
なぜこれでうまくいくのか理由分かりますか?
Vcxsrvの設定中デフォルトだとDisable access controlにチェックがついてなく、(Dockerコンテナからのアクセスを許可するため)チェックをつけることを必須としている記事が多かったです。
チェックしない場合は個別に特定アドレスの接続許可がいるような感じだったのですが、それも無くいけてしまったので謎...となっています