2

Mac に接続されている Arduino を、 Docker for Mac (VM なし)で実行している Linux インスタンスに公開しようとしています。

Arduino は自身を として公開します/dev/tty.usbserialXXXnodeubuntuベースの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
root@8f18fdbcf64d:/# ls /dev/tty.*
ls: cannot access /dev/tty.*: No such file or directory

何も露出していません!

これを使用して、シリアル デバイスを公開し、Linux でシリアル ドライバーをテストしています。

4

2 に答える 2

2

にリストされている Arduino/dev/tty.usbserialXXXデバイスは、実際のパスではなく、デバイスへのシンボリック リンクである可能性があります。シンボリックリンクのパスを読み取るには、次を使用してみてください

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

しばらく前に、これについて未解決の問題がありました。問題が解決するかどうかを確認してください

于 2016-11-05T19:45:48.027 に答える
1

ここでの問題は主に、Mac で Docker を実行していないことです。Mac 上で Linux VM を実行しており、その中で Docker を実行しています。つまり/dev、Linux VM 内のツリーを Docker に公開するのは簡単ですが、ハイパーバイザーからの何らかのサポートがなければ、Mac からデバイスを公開するのは簡単ではありません。

VirtualBoxを中心に構築されたMac用の従来の「Docker Toolbox」を使用すると、Dockerを実行しているVirtualBoxホストにUSBデバイスを割り当てることができるはずです(これにより、Dockerコンテナーに公開できます).

この GitHub の問題では、この特定の状況について説明し、役立つドキュメントへのリンクがあります。

この種の機能が、新しい「Docker for Mac」パッケージで使用されているハイパーバイザーで現在利用できるかどうかはわかりません。

于 2016-11-05T19:46:00.223 に答える