我似乎对牦牛剃毛很感兴趣。
我在 Mac 上运行了 XQuartz 2.7.7 (xorg-server 1.15.2) 和 Yosemite。我可以在本地运行 xeyes。我有一个安装了 xeyes 的 Docker 镜像。我使用以下 Dockerfile 构建它并对其进行标记kojiromike/xapps
:
FROM debian:jessie
RUN apt-get -qqy update \
&& apt-get -qqy install xauth x11-apps --no-install-recommends
我尝试了以下方法让容器中运行的 xeyes 显示在我的本地显示器上:
我使用 shared 启动 boot2docker,tmp
这样我就可以访问 .X11-unix。由于boot2docker 问题 678:
boot2docker --vbox-share=/tmp=tmp up
boot2docker ssh <<< 'sudo mount -t vboxsf tmp /tmp'
首先,我刚刚尝试使用 XQuartz 接口禁用安全机制:
我以为我不需要允许来自网络客户端的连接因为我尝试使用 UNIX 套接字。第一次尝试:
$ docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY \
kojiromike/xapps xeyes
Error: Can't open display: unix:0
接下来我尝试使用 xauth:
$ docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY \
-e XAUTH="$(xauth nextract - $DISPLAY)" kojiromike/xapps \
sh -c 'printf "%s" "$XAUTH" | xauth nmerge - && xeyes'
Error: Can't open display: unix:0
我已经没有什么可以尝试的了。我读过Jessica Frazelle 的博客,但看起来她直接在 Docker 主机上工作,所以可能没有我遇到的 boot2docker 问题。
我还需要执行哪些步骤才能通过 boot2docker 从 docker 容器连接到本地 X 服务器?
答案1
看着https://stackoverflow.com/a/36190462/304690特别是设置:
DISPLAY=$IPADDR:$DISP_NUM