如何在OSX上的docker-machine中的docker容器中显示gui视图?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在OSX上的docker-machine中的docker容器中显示gui视图?相关的知识,希望对你有一定的参考价值。

在我的OSX上,我可以使用Xqautz成功地从docker容器中显示一个gui接口,如下面的命令:

docker run -v /tmp/.X11-unix/X0:/tmp/.X11-unix/X0 -e DISPLAY=$DISPLAY --privileged -ti MY_OWN_DOCKER_IMAGE bash

但是,我想把MY_OWN_DOCKER_IMAGE放在一个docker-machine(名为default)中,并在我的OSX上显示gui接口。

我的情况如下:

  1. 在默认VM内运行的容器内执行gui应用程序。
  2. 将GUI视图从容器传递到默认VM。
  3. 将GUI视图从默认VM传递到OSX。
  4. GUI界面显示在我的macbook上!

我在这里得到一个问题:当我在默认VM中尝试“docker run MY_OWN_DOCKER_IMAGE”时,如何设置“-v”和“-e”参数?或者还有其他解决方案吗?

答案

我在这里找到了解决方案:X11 forwarding doesn’t work when image runs in docker machine but it works fine if the image is run w/o a docker machine

-v应该像:-v /var/run/docker.sock:/var/run/docker.sock

但-e DISPLAY应该给ip(从XQuartz用命令“xhost”检查)

现在我可以在Docker机器VM中运行容器显示gui接口!

以上是关于如何在OSX上的docker-machine中的docker容器中显示gui视图?的主要内容,如果未能解决你的问题,请参考以下文章

boot2docker / docker-machine / Docker Toolbox 上的 Docker 守护进程配置文件

如何将midi从java程序发送到OSX上的IAC总线

osx上的终端和工作台中的mysql数据库不同

OSX 上的 ROS Groovy 安装失败 - rviz 和 OGRE

如何在 OSX 上的单独进程中读取网络摄像头?

如何将 OSX 上的 Xcode 更新到最新版本?