Протокол не указан: не удается подключиться к X-серверу - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь создать docker изображение с opencv для отображения видео. У меня есть следующий Dockerfile:

FROM python:3
ADD testDocker_1.py /
ADD video1.mp4 /
RUN pip install opencv-python
CMD [ "python", "./testDocker_1.py" ]

И следующий скрипт python:

import cv2
import os

if __name__ == '__main__':
    file_path = './video1.mp4'
    cap = cv2.VideoCapture(file_path)
    ret, frame = cap.read()
    while ret:
        ret, frame = cap.read()
        if ret:
            cv2.imshow('Frame Docker', frame)
            if cv2.waitKey(1) & 0xFF == ord('q'):
                break

Итак, сначала я создаю образ:

$ sudo docker build -t test1 .

И проблема возникает, когда я запускаю контейнер:

$ sudo docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix test1
No protocol specified
: cannot connect to X server :1

С уважением.

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Kapil Khandelwal, ваше решение работает для меня. Но только при использовании образа docker в Ubuntu, когда я пытаюсь поделиться им с windows, он не работает. +

0 голосов
/ 13 апреля 2020

Попробуйте это

xhost +
sudo docker run -ti --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix test1

Хотя это решило бы именно этот конкретный вариант использования, но вам нужно отметить следующее:

По сути, xhost + позволяет всем использовать ваш сервер x server;

Refrence

Лучшее и рекомендованное решение присутствует здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...