DockerのGUIアプリをMac OS上で表示する
環境
ホスト: Mac OS Mojave 10.14.1
コンテナ: Ubuntu 18.04
X11のインストール
ホスト(MAC)で下記の要領でインストールを実行
brew cask install xquartz # XQuartzの立ち上げ xquartz
XQuartzのアプリの環境設定を開き、「セキュリティ」タブの
- 「接続を認証」をOFF
- 「ネットワーク・クライアントからの接続を許可」をON
を設定する。接続後、XQuartzを再起動
Dockerコンテナ内での設定
apt-get update apt-get install -y libx11-dev export DISPLAY=host.docker.internal:0.0
のコマンドを実行した後に、コンテナ内のGUIアプリを実行するとXQuartz上でアプリを触ることができます。
host.docker.internalはdockerコンテナの内部IPアドレスとホストをつなぐために用いられるもので、dockerのversion 18.03以降で使えるらしいです。
使ってみた感想
Visual Studio Codeをコンテナ内にインストールして試してみました。
アプリが転送できるのは嬉しいのですが、同一マシンにあるにも関わらず動きがもっさりしているので個人的には微妙な感じです。
コンテナ内で開発するならUbuntuホストで実行した方が圧倒的に快適な印象。
個人で開発するなら、ホスト内で最新バージョンに合わせつつ環境をアップデートしていった方が負担は少ないかなと思いました。