Docker for Windowsで作ったUbuntuコンテナ内のGUIプログラム(spyder)を使う

Photo by maijou2501

前の投稿の内容をWindows10で試してみました。簡易的に(というか雑に)試してみたところ、Windows10でも同様の環境構築が可能であることを確認できました。検証に使ったのはWindows 10 Pro バージョン1467です。以下、手順です。

      1. Docker for WindowsをGet started with Docker for Windowsからインストールする。
      2. コンテナ内のGUIのX Windowの表示に使うmobaXtermをダウンロードします。FreeのHomeエディションで用が足ります。Portable版とInstaller版がありますが、どちらでも良いので好きなほうをダウンロードします。私はPCを汚さずに済むPortable版を使用しました。
      3. mobaXtermを起動し、Settings(Xの形をしたアイコン)を開き、X11 remote accessを full にしておきます(こうしておかないと毎回アクセス許可を聞かれてめんどくさい)。
      4. Windows Powershellを開き、Dockerfileがあるディレクトリで下記を実行してイメージをビルドします。
        PS C:\Users\(Dockerfileのあるディレクトリ) > docker build -t (イメージ名) .
      5. 出来上がったイメージを下記コマンドで実行します。
        PS C:\Users\(Dockerfileのあるディレクトリ) > docker run -it --name spyder -e DISPLAY=192.168.1.2:0 -e USER=root -v /tmp/.X11-unix:/tmp/.X11-unix -v c:/Users:/Users (イメージ名)

        はじめの-eオプションのDISPLAY変数にはホストWindows機のIPアドレスを入力し、イメージ名の手前の-vオプションでWindowsの/UsersディレクトリをUbuntuに同じ名前でマウントしています。

      6. するとMacの時と同様にプロンプトが#に変わってUbuntuにrootとしてログインした状態になりますので、spyderを起動します。
        # spyder &

私の環境ではPowershell上にQXcbConnectionのエラーが出ますが、spyderは問題なく動きます。