【问题标题】:How can I access my device from a windows host to a docker linux container?如何从 Windows 主机访问我的设备到 docker linux 容器?
【发布时间】:2020-08-03 15:52:25
【问题描述】:

我有一个装有 Windows 10 的桌面和一个 elgato 采集卡。我正在使用 OpenCV 捕获视频帧进行处理。到目前为止,一切正常:

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

    # Our operations on the frame come here
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # Display the resulting frame
    cv2.imshow('frame', gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()

我想做的下一步是使用Remote Development Extensions。这个带有 VS Code 的扩展非常适合我的其他 python 项目。这是我编写的第一个使用硬件设备的项目,但是我的 linux 容器无法访问主机可以访问的硬件。我试图寻找解决方案,但我发现的只是一种在我的docker 命令中使用--device 参数的方法,其中的示例从*nix 设备路径指向另一个*nix 设备路径。

我确实遇到过两 (2) 多年前 docker 桌面团队的帖子,说您无法从 Windows 主机访问硬件到 linux 容器。我不确定情况是否仍然如此,并且我不确定远程容器扩展是否有办法访问设备......有一些神奇之处在于扩展安装了一个 vscode-server容器,所以我不确定这是否允许硬件访问?

【问题讨论】:

    标签: linux docker visual-studio-code vscode-remote docker-desktop


    【解决方案1】:

    根据微软官方documentation,您不能将设备从 Windows 主机共享到 Linux 容器。但是,您可以将设备共享到 Windows 容器,但我想这不是您想要的。

    但是,您可以使用docker-machine 来共享您的设备,这是因为 docker-machine 使用虚拟机(例如 VirtualBox)而不是他们的自定义引擎来运行容器的进程。

    安装 docker-machine 后,您可以简单地执行命令

    docker-machine create --driver virtualbox <A name for the machine>
    

    然后你打开应该在你的程序中的 VirtualBox 并手动添加设备。

    【讨论】:

      猜你喜欢
      • 2022-10-06
      • 1970-01-01
      • 2019-08-08
      • 1970-01-01
      • 2016-10-12
      • 2014-11-02
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多