运行 docker 带有 MacBookPro 主机的容器上的 GUI 应用程序
Running GUI apps on docker container with a MacBookPro host
我一直在尝试按照 https://learning-continuous-deployment.github.io/docker/images/dockerfile/2015/04/22/docker-gui-osx/ 上关于 运行 MacBookPro 主机内 docker 容器中的 GUI 应用程序的说明(使用 Docker 工具)。
我使用 Fedora 23 创建了一个简单的 docker 容器并安装了 firefox。
我尝试 运行 firefox,大约一分钟后我收到以下错误:
Unable to init server: Broadway display type not supported: 192.168.57.3:0
Error: cannot open display: 192.168.57.3:0
有人知道错误的含义吗and/or如何解决?
重新启动笔记本电脑解决了我的问题。
在 Mac 上,您可能会发现以下步骤很有用:
- 安装 XQuartz
- 打开它,转到首选项 > 安全并选中允许来自网络客户端的连接的选项
- 重启
- 启动 XQuartz(从应用程序文件夹或使用
open -a XQuartz
)
- 允许来自您的 IP 的传入连接
xhost + $IP
(请参阅注释 1)
- 运行 您的 docker 容器中的 firefox(见注释 2)
注意 1:这是获取您的 IP 地址的绝妙技巧:
export IP=$(ifconfig en0 | grep inet | awk '=="inet" {print }')
注释 2: 还有一个示例 docker 运行 命令启动 firefox
docker run -it -e DISPLAY=$IP:0 -v /tmp/.X11-unix:/tmp/.X11-unix <image> firefox
我看到了同样的错误,不幸的是重新启动并没有解决我的问题。但是,我能够通过挂载并指向我的本地 .Xauthority 文件来使其工作:
IP=$(ifconfig en0 | grep inet | awk '=="inet" {print }')
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 内容已根据
正确配置
我一直在尝试按照 https://learning-continuous-deployment.github.io/docker/images/dockerfile/2015/04/22/docker-gui-osx/ 上关于 运行 MacBookPro 主机内 docker 容器中的 GUI 应用程序的说明(使用 Docker 工具)。
我使用 Fedora 23 创建了一个简单的 docker 容器并安装了 firefox。
我尝试 运行 firefox,大约一分钟后我收到以下错误:
Unable to init server: Broadway display type not supported: 192.168.57.3:0
Error: cannot open display: 192.168.57.3:0
有人知道错误的含义吗and/or如何解决?
重新启动笔记本电脑解决了我的问题。
在 Mac 上,您可能会发现以下步骤很有用:
- 安装 XQuartz
- 打开它,转到首选项 > 安全并选中允许来自网络客户端的连接的选项
- 重启
- 启动 XQuartz(从应用程序文件夹或使用
open -a XQuartz
) - 允许来自您的 IP 的传入连接
xhost + $IP
(请参阅注释 1) - 运行 您的 docker 容器中的 firefox(见注释 2)
注意 1:这是获取您的 IP 地址的绝妙技巧:
export IP=$(ifconfig en0 | grep inet | awk '=="inet" {print }')
注释 2: 还有一个示例 docker 运行 命令启动 firefox
docker run -it -e DISPLAY=$IP:0 -v /tmp/.X11-unix:/tmp/.X11-unix <image> firefox
我看到了同样的错误,不幸的是重新启动并没有解决我的问题。但是,我能够通过挂载并指向我的本地 .Xauthority 文件来使其工作:
IP=$(ifconfig en0 | grep inet | awk '=="inet" {print }')
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 内容已根据