我试图在Docker中运行GUI并尝试关注以下链接。
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 :(得分:0)
您是否尝试过阅读https://docs.docker.com/docker-for-mac/osxfs/#namespaces?
默认情况下,您可以共享/ Users /,/ Volumes /,/ private /和中的文件 / tmp直接。添加或删除导出的目录树 Docker,使用Docker首选项中的文件共享选项卡
答案 1 :(得分: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
,以便使用以下方法在运行图形应用程序的docker容器和OS X主机操作系统上的X window系统之间建立连接:
> brew install socat > socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"
> brew install xquartz
> open -a Xquartz
> ifconfig en0 en0: … inet 192.168.0.235 netmask 0xffffff00 broadcast 192.168.199.255 …
:0
:
> docker run -e DISPLAY=192.168.0.235:0 gns3/xeyes
来自BMitch的评论