macでdockerからGUIアプリを立ち上げる

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である必要があります.  

Dockerfileの作り方

Dockerイメージをpullした後にbashを起動して色々と手を加える(docker commitを使う)ことはできますが、あまりいい方法ではありません. イメージファイルに手で加える修正が複雑になるともはやどのようにイメージが作られたのかわからなくなり、メンテナビリティが低下してしまいます. 特に、誰かのイメージを拡張して使っている場合、独自にcommitしていると、オリジナルのイメージに入った更新を取り込むには「オリジナルのイメージ再取得 -> 独自に行ったcommitを再度行う」といった操作が必要になってしまいます. そこで、pullしたイメージはDockerfileを更新することによって拡張していくべきです.