Дисплей X11 перестает работать после обновления docker - PullRequest
0 голосов
/ 03 апреля 2020

Еще раз я не могу подключиться к дисплеям X11 из docker контейнеров. Вчера я обновил docker desktop (community) для windows 10 до 2.2.0.5, и теперь мои дисплеи x11 из моих контейнеров больше не подключаются. Я использую эту команду для тестирования с помощью бэкэнда tkagg в matplotlib (который я использовал все это время):

docker run -it test-docker python -c "import matplotlib.pyplot as plt; plt.plot([1], [2]); plt.show()"

, который не работает, несмотря на отображение настроек команды ENV: 0.0 , Поэтому я перепробовал все возможные комбинации

docker run -i -e DISPLAY=${host}:0.0 -t test-docker python -c "import matplotlib.pyplot as plt; plt.plot([1], [2]); plt.show()"

, где ${host} было localhost, `` и все ips, перечисленные в ipconfig.

Я подтвердил, что с экземпляром XMing все в порядке, так как я могу запустить эту команду в bash в WSL, и он хорошо отрисовывается (с DISPLAY = localhost: 0.0).

Я исчерпал идей, и мне действительно нужна помощь!

Ошибка сообщения: _tkinter.TclError: couldn't connect to display ":0.0"

Я также пытался добавить --net=host -v /var/run/docker.sock:/var/run/docker.sock test-docker (из Пересылка X11 не работает, когда изображение запускается docker machine, но работает нормально, если образ запускается без docker machine ), но безуспешно.

Мой минимальный Dockerfile (доступный в dockerhub с docker pull lucidnonsense/test-docker):

FROM ubuntu:latest
SHELL ["/bin/bash", "-c"]
ENV LANG=C.UTF-8 LC_ALL=C.UTF-8
ENV PATH /opt/conda/bin:$PATH
ENV TINI_VERSION v0.16.1

RUN apt-get update --fix-missing && \
    apt-get install -y wget bzip2 ca-certificates curl git && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

RUN wget --quiet https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \
    /bin/bash ~/miniconda.sh -b -p /opt/conda && \
    rm ~/miniconda.sh && \
    /opt/conda/bin/conda clean -tipsy && \
    ln -s /opt/conda/etc/profile.d/conda.sh /etc/profile.d/conda.sh && \
    echo ". /opt/conda/etc/profile.d/conda.sh" >> ~/.bashrc && \
    echo "conda activate base" >> ~/.bashrc

ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /usr/bin/tini
RUN chmod +x /usr/bin/tini
RUN conda install -c conda-forge galsim
RUN conda install jupyter ipython matplotlib pyyaml
RUN conda install -c astropy aplpy


ENV DISPLAY :0
ENTRYPOINT [ "/usr/bin/tini", "--" ]
CMD [ "/bin/bash" ]
...