连接到 Docker 中的相机

本文介绍了如何在 Docker 中使用自定义 IP 地址连接到一台或多台相机。

备注

在继续之前,请确保您已在主机上配置了 网络配置

Docker 默认使用 bridge ,该驱动程序不允许多播流量。这意味着多播 DNS (mDNS) 网络发现功能不可用,在未进行进一步的设置之前,只能发现 IP 为默认 IP 172.28.60.5 的相机。有两种方法可以解决这个问题。

一个简单的解决方案是将主机网络开放给 Docker 容器。这可以通过在运行 Docker 容器时启用 --network=host 来完成,例如

sudo docker run --interactive --tty --device=/dev/dri --network=host <image>

其中 <image> 是您从中启动容器的 Docker 镜像。请注意,这会将所有主机网络接口公开给容器。

Zivid SDK 可以通过使用 Cameras.yml 来搜索特定的 IP 地址,而不是使用 mDNS。查看 Cameras.yml以及如何限制可发现的相机 以了解有关其工作原理的更多信息。将以下内容添加到您的 Dockerfile 以发现具有非默认 IP 的相机。

ENV ZIVID_CONFIG=/root/.config/Zivid/API/Cameras.yml
RUN mkdir --p $(dirname $ZIVID_CONFIG)
RUN echo "__version__: 1"                   >> $ZIVID_CONFIG
RUN echo "Cameras:"                         >> $ZIVID_CONFIG
RUN echo "    NetworkCameras:"              >> $ZIVID_CONFIG
RUN echo "        - NetworkCamera:"         >> $ZIVID_CONFIG
RUN echo "            Host: 172.28.60.5"    >> $ZIVID_CONFIG
RUN echo "        - NetworkCamera:"         >> $ZIVID_CONFIG
RUN echo "            Host: 172.28.60.6"    >> $ZIVID_CONFIG
RUN echo "        - NetworkCamera:"         >> $ZIVID_CONFIG
RUN echo "            Host: 172.28.60.7"    >> $ZIVID_CONFIG

更改 Host 以发现具有您的特定 IP 地址的相机,或添加另一个 NetworkCamera 。再次构建 Docker 镜像以使更改生效。

请通过运行以下命令验证您能够在Docker容器中发现所有已连接的相机

ZividListCameras