2016-11-05 126 views
1

我試圖將我插入到我的mac中的Arduino暴露給我在Docker for Mac(no vm)中運行的linux實例。用docker for mac暴露Docker容器中的TTY設備

Arduino公開自己爲/dev/tty.usbserialXXX。我使用的是基於Ubuntu的node docker鏡像。

我跑的命令是

$ 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 
[email protected]:/# ls /dev/tty.* 
ls: cannot access /dev/tty.*: No such file or directory 

沒有暴露!

我使用這個來暴露串口設備在linux下測試serial drivers

+0

也在github上跟蹤這個https://github.com/docker/for-mac/issues/900 – reconbot

回答

1

這裏的問題很大程度上是因爲您沒有在您的mac上運行Docker 。您正在Mac上運行Linux VM,其中您正在運行Docker。這意味着將Linux VM內的/dev樹公開給Docker很容易,但是如果缺少來自管理程序的某種支持,則從Mac公開設備的難度會更小。

使用基於VirtualBox構建的Mac的傳統「Docker Toolbox」,應該可以將USB設備分配給運行Docker的VirtualBox主機(這將允許您將其暴露給Docker容器)。

This GitHub issue談論這種特殊情況,並鏈接到有用的文檔。

我不知道這種功能目前是否適用於較新的「Docker for Mac」軟件包中使用的管理程序。

+0

有沒有VM「Docker for Mac」 – reconbot

+1

還有!我鼓勵你仔細閱讀[文檔](https://blog.docker.com/2016/03/docker-for-mac-windows-beta/),特別是那些說「Docker引擎運行在在Mac OS X上的xhyve虛擬機之上的Alpine Linux發行版「。 OS X以前的Docker用於使用VirtualBox,但最近已切換到xhyve,但在兩種情況下,它仍然在Linux VM中運行,因爲這是Docker本機運行的唯一平臺。 – larsks

0

/dev/tty.usbserialXXX列出的Arduino設計可能是設備的符號鏈接,而不是實際的路徑。要閱讀符號鏈接路徑嘗試使用

docker run --rm -it -v `pwd`:/app --device=/dev/$(readlink /dev/tty.usbmodem1421) node bash 

有一個issue打開這一段時間回來。請檢查它是否可以解決您的問題

相關問題