尝试从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/

10-12 23:48