未指定协议:无法连接到X服务器

2024-09-27 02:21:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用opencv创建一个docker图像以显示视频。我有以下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

问候


Tags: dockerpy图像importaddifcv2frame
2条回答

Kapil Khandelwal,你的解决方案对我有效。但仅在ubuntu上使用docker图像,当我尝试与windows共享它时,它不起作用

试试这个

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

虽然它可以解决这个特定的用例,但您需要注意以下几点:

Basically, the xhost + allows everybody to use your host x server;

Refrence

here上有一个更好的推荐解决方案

相关问题 更多 >

    热门问题