1. 前提

OS: Mac OSX

Docker, homebrewをインストール済み

GUIで動作させたいDockerコンテナがある

2. 実行方法

(1) 環境のセットアップ

homebrewを使って必要なソフトウェアをインストールしていきます.

homebrewのインストールがまだであれば以下のコマンドを実行してください.

最後に,XQuartzというX Window Systemのクライアントを実行します.

(2) socatの実行

(1)の最後に立ち上げたXQuartzのウィンドウ上にて以下のコマンドを実行します.

XQuartzのウィンドウ上にて実行することがポイントです.

不安であればウィンドウ上でecho $DISPLAYを実行し,値が返ってくることを確認してください.

(3) dockerコンテナの実行

以下のようにdockerコンテナを実行してください.

 ポイントは
・DISPLAY=で指定するIPはdockerを実行している(=host側の)端末のIPです.
    ifconfig等を実行して,端末に割り当てられているIPを確認してください.
    docker containerの内部からアクセス可能なIPである必要があります.
    繋がらない場合は,docker run docker_container /bin/bash 等でコンテナ内のbashに入り,pingで疎通確認をしてみてください.
    -e は環境変数を設定するオプションです./bin/bash内で自分でプログラムを動かす際は,export DISPLAY=192.168.0.2:0 等で環境変数を設定してください.(設定の仕方はコンテナのディストリビューションによります)
・docker_containerには実行したいコンテナ名を入力してください.

 

3. 経緯

tensorflowを勉強するために,LearningTensorflow.comのサンプルを実行していたが,python-tkを利用していたためGUI環境が必要となった.

Googleで調べて見るとQiitaなどに載っているが(以下エントリ参照),いずれも断片的な情報でそのまま実行してもうまくいかなかったため,まとめてみました.

 

参考サイト

 

Leave a Reply

Your email address will not be published. Required fields are marked *