2016-07-31 154 views
5

使用Docker for Mac 1.12 (stable)和OS X 10.11.5(15F34),我試圖讓我的一個容器轉發到X11。如何將Docker for Mac轉發至X11?

首先,我從我的bash shell安裝XQuartz:

$ brew cask install xquartz 

==> Downloading https://dl.bintray.com/xquartz/downloads/XQuartz-2.7.9.dmg 
######################################################################## 100.0% 
==> Verifying checksum for Cask xquartz 
==> Running installer for xquartz; your password may be necessary. 
==> Package installers may write to any location; options such as --appdir are ignored. 
Password: 
==> installer: Package name is XQuartz 2.7.9 
==> installer: Installing at base path/
==> installer: The install was successful. 
    xquartz staged at '/usr/local/Caskroom/xquartz/2.7.9' (73M) 

然後我繼續設置XQuartz ...

open -a XQuartz 

在XQuartz首選項 - >安全選項卡,啓用「允許來自網絡客戶端的連接「。

那麼我應該在我的bash shell中運行xhost + $MY_IP_ADDRESS,但我得到的是這樣的錯誤:

xhost: unable to open display "" 

最後,所有導遊我讀說我應該跑我的容器是這樣的:

docker run -e DISPLAY=$MY_IP_ADDRESS:0 -v /tmp/.X11-unix:/tmp/.X11-unix DOCKER_IMAGE 

...但那不起作用。在我的特定容器中,出現此錯誤:

... cannot connect to X server 10.0.0.131:0 

我在做什麼錯?

回答

2

原來在XQuartz 2.7.9中有一個錯誤。

當使用XQuartz 2.7.10_beta2時,它工作。

+0

我有與版本2.7.11相同的問題。 我卸載並將其降級到2.7.10_beta2,一切終於奏效。我只是重新啓動(而不是僅僅註銷),並開始發揮作用 – revolutionary

+0

我有一個heckuva時間,這...降級等。原來的問題是一個簡單的重新啓動是必要的。現在在XQuartz 2.7.11上完美運行,在MacOS 10.13.3上使用Docker CE版本17.12.0。 –

1

我在Mac OS上安裝了xQuartz 2.7.11。

試圖運行碼頭容器時,出現以下錯誤 <program>: cannot connect to X server <ip>:0 。我試圖降級XQuartz,但它仍然沒有解決我的問題。

設置的一個關鍵部分是爲xhost添加您的ip訪問控制列表。

xhost + $(ipconfig getifaddr en0)

添加IP到xhost的後,一切正常。沒有必要降級Xquartz版本。

+0

2.7.11對我不起作用(macOS Sierra 10.12.4 + Docker CE 17.03.1)。我不得不降級到2.7.10_beta2才能使其工作。 – Coyotwill