2017-07-03 107 views
0

我試圖在Docker中運行一個GUI並試圖關注下面的鏈接。圖形用戶界面的Docker

http://wiki.ros.org/docker/Tutorials/GUI#The_safer_way 

使用此鏈接,我試圖執行the_safer_way方法,但在我的MAC中得到以下錯誤。

Ps-MacBook-Pro:~ p$ docker run -it \ 
>  --user=$USER \ 
>  --env="DISPLAY" \ 
>  --volume="/etc/group:/etc/group:ro" \ 
>  --volume="/etc/passwd:/etc/passwd:ro" \ 
>  --volume="/etc/shadow:/etc/shadow:ro" \ 
>  --volume="/etc/sudoers.d:/etc/sudoers.d:ro" \ 
>  --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \ 
>  osrf/ros:indigo-desktop-full \ 
>  rqt 
docker: Error response from daemon: Mounts denied: 
The path /etc/sudoers.d 
is not shared from OS X and is not known to Docker. 
You can configure shared paths from Docker -> Preferences... -> File Sharing. 
See https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info. 
+0

您所遵循的說明假設您在Linux主機上。你運行的MacOS上沒有像Linux那樣運行的X11服務器。請參閱以下有關MacOS的說明:https://cntnr.io/running-guis-with-docker-on-mac-os-x-a14df6a76efc – BMitch

+0

@MarkBooth,因爲鏈接唯一的答案是皺眉,我沒有時間在此重現該程序。 – BMitch

+0

@bmitch:謝謝..我試圖安裝在Ubuntu的現在.. – user1050619

回答

0

在MacOS上,正常情況下不具有一個X服務器,您需要做的比上多一點Linux系統,如Using GUI's with Docker所述。

文章Running GUI’s with Docker on Mac OS X對如何做到這一點的簡要說明,而Bring Linux apps to the Mac Desktop with Docker有更全面的說明,但總結:

  • 安裝socat這樣你就可以創建一個運行圖形泊塢窗容器之間的連接應用和使用我們的OS X主機操作系統上 X窗口系統:
    > brew install socat 
    > socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\" 
    
  • 安裝Xquartz,則X Window系統使用OS X操作系統上:
    > brew install xquartz 
    
  • 註銷,然後回。
  • 打開Xquartz:
    > open -a Xquartz 
    
  • X11首窗口中選擇安全選項卡,並確保允許來自網絡客戶端的連接被選中。
  • 獲取主機操作系統的IP地址:
    > ifconfig en0 
    en0: 
    … 
    inet 192.168.0.235 netmask 0xffffff00 broadcast 192.168.199.255 
    … 
    
  • 最後DISPLAY環境變量設置爲這個IP地址後:0運行泊塢窗容器中時:
    > docker run -e DISPLAY=192.168.0.235:0 gns3/xeyes 
    

來自的評論