Docker 用于 windows 上基于 GUI 的环境
Docker for GUI-based environments on windows
我正在尝试为 opencv 社交距离检测项目制作一个 docker 文件作为学校项目的要求
我遇到的问题是在基于 GUI 的环境中制作 docker 运行
我设法通过在 运行 命令
中添加 fellow 行使其在 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 social-distance-detection -y
https://youtu.be/hTUyzF4v9KA
但它在 windows
上不起作用
我应该将哪个命令添加到 docker 运行 以便它可以 运行 on windows?
有没有办法让它在不添加任何额外行的情况下工作?
有Docker文件
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 所以你可以找到一些废话:)
首先,清理您的 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" ]
我不会重复我对你的问题的评论,但至于其他更改 - 你应该使用 COPY
,而不是 ADD
,除非你需要 ADD-specific 功能.您应该只 运行 apt-get install
一次,然后清理所有临时文件和缓存。您应该 运行 pip
和 --no-cache-dir
切换以避免首先创建不必要的缓存。
现在开始回答您的实际问题。正如@David Maze 建议的那样,您需要安装 X Window 服务器,然后将其配置为接受所有连接,最后 运行:
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中有详细描述。
我正在尝试为 opencv 社交距离检测项目制作一个 docker 文件作为学校项目的要求
我遇到的问题是在基于 GUI 的环境中制作 docker 运行
我设法通过在 运行 命令
中添加 fellow 行使其在 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 social-distance-detection -y https://youtu.be/hTUyzF4v9KA
但它在 windows
上不起作用我应该将哪个命令添加到 docker 运行 以便它可以 运行 on windows? 有没有办法让它在不添加任何额外行的情况下工作?
有Docker文件
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 所以你可以找到一些废话:)
首先,清理您的 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" ]
我不会重复我对你的问题的评论,但至于其他更改 - 你应该使用 COPY
,而不是 ADD
,除非你需要 ADD-specific 功能.您应该只 运行 apt-get install
一次,然后清理所有临时文件和缓存。您应该 运行 pip
和 --no-cache-dir
切换以避免首先创建不必要的缓存。
现在开始回答您的实际问题。正如@David Maze 建议的那样,您需要安装 X Window 服务器,然后将其配置为接受所有连接,最后 运行:
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中有详细描述。