web-dev-qa-db-ja.com

MacBookProホストを使用してDockerコンテナでGUIアプリを実行する

https://learning-continuous-deployment.github.io/docker/images/dockerfile/2015/04/22/docker-gui-osx/ の実行についての指示に従おうとしています。 MacBookProホスト内のDockerコンテナー内のGUIアプリ(Dockerツールを使用)。

Fedora 23を使用し、Firefoxをインストールして、単純なDockerコンテナーを作成しました。

Firefoxを実行しようとすると、約1分後に次のエラーが発生します。

Unable to init server: Broadway display type not supported: 192.168.57.3:0
Error: cannot open display: 192.168.57.3:0

エラーが何を意味するのか、および/またはそれを修正する方法の手がかりを誰かが持っていますか?

12
emory

Macでは、次の手順が役立つ場合があります。

  1. XQuartzをインストールします
  2. それを開き、[設定]> [セキュリティ]に移動し、ネットワーククライアントからの接続を許可するオプションをオンにします
  3. リブート
  4. XQuartzを起動します(アプリケーションフォルダーから、またはopen -a XQuartzを使用)
  5. xhost + $IPを使用してIPからの着信接続を許可します(注1を参照)
  6. DockerコンテナでFirefoxを実行します(注2を参照)

注1:IPアドレスを取得するための巧妙なトリックは次のとおりです。

export IP=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}') 

注2:Firefoxを起動するdockerrunコマンドの例

docker run -it -e DISPLAY=$IP:0 -v /tmp/.X11-unix:/tmp/.X11-unix <image> firefox
11
Adam Griffiths

同じエラーが表示されていましたが、残念ながら再起動しても問題は解決しませんでした。ただし、ローカルの.Xauthorityファイルをマウントしてポイントすることで機能させることができました。

IP=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
docker run --rm  --name firefox -e DISPLAY=$IP:0 -e XAUTHORITY=/.Xauthority --net Host -v /tmp/.X11-unix:/tmp/.X11-unix -v ~/.Xauthority:/.Xauthority  jess/firefox

もちろん、これは、XQuarts/xhostのものが この回答 に従って適切に構成されていることを前提としています。

2
dbrianj

ラップトップを再起動すると、問題が解決しました。

2
David Braun