适用于Windows上基于GUI的环境的Docker

我正试图制作一个dockerfile来作为opencv社交距离检测项目,作为学校项目的要求

我遇到的问题是使docker在基于GUI的环境中运行

通过将同行添加到运行命令中,我设法以某种方式使其在 linux 上运行

-e DISPLAY = $ DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:ro

完整命令

sudo docker run -e DISPLAY = $ DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:ro社交距离检测-y https://youtu.be/hTUyzF4v9KA

但是在Windows上不起作用

我应该添加到 docker run 中的哪个命令,以便它可以在Windows上运行? 并有可能在不增加任何额外行的情况下使其正常工作吗?

有Dockerfile

FROM ubuntu:20.04
FROM python:3.8

LABEL maintainer="muhammed akyuzlu ***@gmail.com"

ADD Social-distance-detection.py / 
ADD coco.names / 
ADD yolov4.cfg /    
ADD yolov4.weights /  




RUN apt-get update \
    && apt-get install -y \
    python3-pyqt5 \
    build-essential \
    cmake \
    git \
    wget \
    unzip \
    yasm \
    pkg-config \
    libswscale-dev \
    libtbb2 \
    libtbb-dev \
    libjpeg-dev \
    libpng-dev \
    libtiff-dev \
    libavformat-dev \
    libpq-dev \
    xserver-xephyr\
    && rm -rf /var/lib/apt/lists/*

RUN apt-get update -y \ 
    && apt-get install python3-pip -y \
    && pip install pafy \
    && pip install numpy  \
    && pip install youtube-dl \
    && pip install numpy \
    && pip install opencv-python 


ENTRYPOINT ["python","./Social-distance-detection.py"] 

这是我第一次使用Docker,因此您可以找到一些废话:)

iCMS 回答:适用于Windows上基于GUI的环境的Docker

首先,清理您的Dockerfile。我建议:

FROM python:3.8

LABEL maintainer="muhammed akyuzlu ***@gmail.com"

COPY Social-distance-detection.py / 
COPY coco.names / 
COPY yolov4.cfg /    
COPY yolov4.weights /  

RUN apt-get update && \
    apt-get -y install \
    build-essential \
    cmake \
    git \
    wget \
    unzip \
    yasm \
    pkg-config \
    libswscale-dev \
    libtbb2 \
    libtbb-dev \
    libjpeg-dev \
    libpng-dev \
    libtiff-dev \
    libavformat-dev \
    libpq-dev \
    xserver-xephyr && \
    apt-get -y clean && \
    rm -rf /var/lib/apt/lists/* && \
    pip install --no-cache-dir pafy \
    numpy  \
    youtube-dl \
    PyQt5 \
    opencv-python 

ENTRYPOINT [ "python","./Social-distance-detection.py" ] 

我不会重复对您的问题的评论,但对于其他更改,除非您需要ADD特定的功能,否则应使用COPY而不是ADD。您只应运行一次apt-get install,然后清理所有临时文件和缓存。您应该使用pip开关来运行--no-cache-dir,以避免首先创建不必要的缓存。

现在是您的实际问题。正如@David Maze所建议的那样,您需要安装X Window Server,然后将其配置为接受所有连接并最终运行:

docker run -e DISPLAY=192.168.1.68:0.0 social-distance-detection -y https://youtu.be/hTUyzF4v9KA

用主机的IP地址替换192.168.1.68

该过程在this article中有详细说明。

本文链接:https://www.f2er.com/1581747.html

大家都在问