尝试从Docker容器访问uEye以太网摄像机,我可以成功地通过网络从主机访问它,但没有从容器中获得任何运气。
我正在使用docker-compose,将特权设置为true,如下所示
version: '3'
services:
#Engineering UI Service
web:
build:
context: .
dockerfile: Dockerfile
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
expose:
- 8000
networks:
- backend
container_name: web
privileged: true
cap_add:
- SYS_ADMIN
restart: always
tty: true
networks:
backend:
driver: bridge
Dockerfile已设置
FROM centos:7
# set environment varibles
USER root
ENV PYTHONUNBUFFERED 1
RUN yum -y update && yum -y install wget
# INSTALL CAMERA
RUN echo "Installing uEye camera" \
&& mkdir /uEye && cd /uEye \
&& wget http://test.com/uEye-Linux-4.90.06-64.tgz \
&& tar xvf uEye-Linux-4.90.06-64.tgz -C /uEye \
&& sh "ueyesdk-setup-4.90.06-eth-amd64.gz.run"
我在容器中运行“/ usr / local / share / ueye / bin / ueyesetid”时收到
“未连接相机!”
最佳答案
我可以解决此问题的唯一方法是设置cap-add = ALL和-v / dev:/ dev。不建议这样做,因为它允许容器具有所有主机特权,但这是我可以通过以太网与摄像机进行通讯的唯一方法。
关于docker - Docker访问以太网设备,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56536578/