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



我正试图用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

谨致问候。

试试这个

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

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

基本上,xhost+允许每个人使用您的主机x服务器

参考

提供了一个更好且推荐的解决方案

相关内容

  • 没有找到相关文章