使用 docker for mac 在 docker 容器中公开 TTY 设备

2024-02-15

我正在尝试将插入我的 mac 的 Arduino 暴露给我正在运行的 Linux 实例适用于 Mac 的 Docker https://docker.github.io/docker-for-mac/(没有虚拟机)。

Arduino 将自己暴露为/dev/tty.usbserialXXX。我正在使用nodedocker镜像是基于ubuntu的。

我正在运行的命令是

$ docker run --rm -it -v `pwd`:/app --device /dev/tty.usbmodem1421 node bash
docker: Error response from daemon: linux runtime spec devices: error gathering device information while adding custom device "/dev/tty.usbmodem1421": lstat /dev/tty.usbmodem1421: no such file or directory.

如果我尝试使用--privileged

$ docker run --rm -it -v `pwd`:/app --device /dev/tty.usbmodem1421 --privileged node bash
root@8f18fdbcf64d:/# ls /dev/tty.*
ls: cannot access /dev/tty.*: No such file or directory

什么都没有暴露!

我用它来公开串行设备以进行测试串行驱动程序 https://github.com/EmergingTechnologyAdvisors/node-serialport在Linux中。


这里的问题主要是你没有运行 Docker在你的Mac上。您正在 Mac 上运行 Linux 虚拟机,并在其中运行 Docker。这意味着很容易暴露/devLinux VM 内的树到 Docker,但由于缺乏虚拟机管理程序的某种支持,不太容易从 Mac 公开设备。

使用围绕 VirtualBox 构建的旧版 Mac“Docker Toolbox”,应该可以将 USB 设备分配给运行 Docker 的 VirtualBox 主机(这反过来又允许您将其公开给 Docker 容器)。

这个 GitHub 问题 https://github.com/boot2docker/boot2docker/issues/707讨论了这种特殊情况并提供了有用文档的链接。

我不知道较新的“Docker for Mac”包中使用的虚拟机管理程序当前是否提供此类功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 docker for mac 在 docker 容器中公开 TTY 设备 的相关文章

随机推荐