Macos 使用MacBookPro主机在docker容器上运行GUI应用程序
我一直在尝试遵循关于在MacBookPro主机内的docker容器中运行GUI应用程序的说明(使用docker工具) 我使用Fedora23和firefox创建了一个简单的docker容器 我尝试运行firefox,大约一分钟后,出现以下错误:Macos 使用MacBookPro主机在docker容器上运行GUI应用程序,macos,docker,socat,xquartz,Macos,Docker,Socat,Xquartz,我一直在尝试遵循关于在MacBookPro主机内的docker容器中运行GUI应用程序的说明(使用docker工具) 我使用Fedora23和firefox创建了一个简单的docker容器 我尝试运行firefox,大约一分钟后,出现以下错误: Unable to init server: Broadway display type not supported: 192.168.57.3:0 Error: cannot open display: 192.168.57.3:0 有人知道错误的含
Unable to init server: Broadway display type not supported: 192.168.57.3:0
Error: cannot open display: 192.168.57.3:0
有人知道错误的含义和/或如何修复吗?重新启动笔记本电脑为我解决了问题。在Mac电脑上,您可能会发现以下步骤很有用:
打开-a XQuartz
)xhost+$ip
从您的ip进行传入连接(请参见备注1)export IP=$(ifconfig en0 | grep inet | awk '$1=="inet" {print $2}')
注2:还有一个示例docker运行命令启动firefox
docker run -it -e DISPLAY=$IP:0 -v /tmp/.X11-unix:/tmp/.X11-unix <image> firefox
docker run-it-e DISPLAY=$IP:0-v/tmp/.X11 unix:/tmp/.X11 unix firefox
我看到了相同的错误,不幸的是,重新启动并没有为我解决问题。但是,我可以通过挂载并指向我的本地.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配置正确,这对我也适用。设置好所有内容后,立即使用XQuartz或xhost。谢谢。据我记忆所及,这是我遵循的程序。我不再有macbookpro,无法验证。第3步很重要!注销并重新登录是不够的!这项工作做得很出色。应该是公认的答案谢谢!工作起来很有魅力。问题:为什么我们必须获得网络适配器的实际地址?如果所有这些都发生在一台主机上,为什么我们不能使用127.0.0.1?无关:
grep…|awk…
总是冗余的。您总是可以向awk添加一个match子句:grep abc | awk'$1==“xyz”
变成awk'$0~/abc/&&$1==“xyz”
。但在这里,这个事件是多余的,因为grep inet
对于第一列等于“inet”
的行总是正确的;你可以不使用grep命令。我现在又开始使用MacBookPro了。我不知道为什么这个解决方案以前对我不起作用,但现在起作用了。所以我可以亲自验证它是否有效。也许它适用于现代MacBookPros,而不适用于旧款。不知道。