リーマンエンジニアの生活日誌

メーカで働くソフトウェアエンジニアのオフ活動

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ホストで実行した方が圧倒的に快適な印象。
個人で開発するなら、ホスト内で最新バージョンに合わせつつ環境をアップデートしていった方が負担は少ないかなと思いました。

参考

qiita.com

docs.docker.com