连接到 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