【发布时间】:2019-06-11 04:39:38
【问题描述】:
尝试从 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”时在容器内收到 “没有连接摄像头!”
【问题讨论】:
-
你能解决你的问题吗?我也有类似的情况,但使用的是 USB 摄像头:stackoverflow.com/questions/60195652/…
-
是的,我可以解决这个问题的唯一方法是设置 cap-add=ALL 和 -v /dev:/dev。不建议这样做,因为它允许容器拥有所有主机权限,但这是我可以让它通过以太网与相机对话的唯一方法。
标签: docker docker-compose ueye