Inside a Docker Container: "Error: cannot open display: localhost:11.0"

Inside a Docker Container: "Error: cannot open display: localhost:11.0"

我正在尝试通过 ssh 在 docker 容器中使用带有图形界面的程序。

目前我在外部机器上通过 ssh 连接,其中 docker 和容器是 运行。在主机上,我可以启动正确显示的 firefox 等程序。连接建立于:

ssh -Y root@host

当我在 docker 容器中尝试使用 firefox 图像(见下文)时:

docker run -it --privileged --rm \
    -e DISPLAY=$DISPLAY \
    -v /tmp/.X11-unix:/tmp/.X11-unix \
    -v /root/.Xauthority:/root/.Xauthority:rw \
    firefox

我刚刚得到:

Error: cannot open display: localhost:11.0

我已经尝试在主机上设置 xhost +,但仍然无法正常工作。 主机运行 Scientific Linux release 7.2 并且 docker 图像是使用 Dockerfile 来自 http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/:

FROM ubuntu:14.04

RUN apt-get update && apt-get install -y firefox

# Replace 1000 with your user / group id
RUN export uid=1000 gid=1000 && \
    mkdir -p /home/developer && \
    echo "developer:x:${uid}:${gid}:Developer,,,:/home/developer:/bin/bash" >> /etc/passwd && \
    echo "developer:x:${uid}:" >> /etc/group && \
    echo "developer ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/developer && \
    chmod 0440 /etc/sudoers.d/developer && \
    chown ${uid}:${gid} -R /home/developer

USER developer
ENV HOME /home/developer
CMD /usr/bin/firefox

--net=host 添加到 docker run 解决了问题。