2016-05-13 43 views
4

ホストのシリアルポートにアクセスできるドッカーコンテナを実行しようとしています。ここ は私がやったことです:Dockerコンテナでシリアルポートデバイスが認識されない

  • 私はMAC
  • ホスト ( http://www.prolific.com.tw/US/ShowProduct.aspx?p_id=229&pcid=41
  • は、デバイスに差し込ま上
  • インストールされているドライバを使用
  • /dev/tty.usbserialを返され、実行ls /dev/t* - それは
  • の作品
  • /dev/tty.usbserial devicを返さなかったコンテナ内でコンテナdocker run -it --privileged -v /dev:/dev node:4.4.0 /bin/bashを実行してからls /dev/t*を実行します。 E ...

私はパラメータの異なるバリエーションで多くのことを果たしたが、作業1を発見していない:)デバイスが再接続されるかもしれないと名前が異なる可能性があるのでまた--deviceフラグは、私には適していません/dev/tty.usbserial

+1

用のバスとデバイスの関係を取得する方法も参照してください。 ?これはあなたがドッカーマシンなどを使用していることを意味しますか?その場合、問題はおそらく、ドッキングコンテナが動作する仮想マシンがデバイスを認識していないことと関連している可能性があります。 – joelnb

+0

私は公式のドッカーツールボックス(https://www.docker.com/products/docker-toolbox)を使用しています。その後、 'Docker Quickstart Terminal'を実行してください。このステップではデバイスが表示されます。新しいコンテナを実行した直後にデバイスが表示されません。 – kashesandr

+1

'docker-machine ssh 'を実行すると '/ dev'でデバイスを見ることができますか? Dockerクイックスタートターミナルは、VM内のドッカーデーモンと通信するための環境変数をすべて設定した状態で、端末を開くだけです。 – joelnb

答えて

1

Notification of new USB devices in docker container」に記載されているスクリプト(Guido Diepen -- gdiepen)が役立つかどうかを確認できます。

彼はまた、デバイスにアクセスできるように、--privileged引数でコンテナを実行します。そして、ホストディレクトリ/dev/bus/usbを、コンテナを開始するときに、-v /dev/bus/usb:/dev/bus/usbという引数でコンテナ内の/dev/bus/usbディレクトリにマウントする。スクリプトは(解除)するデバイスを待つinotifywaitlsusbの両方を使用しています

が差し込まれ、それは我々が興味を持っているデバイスだったかどうかを確認。

inotifywaitは、iノードを聴き続けるだろう/削除の作成対応するデバイスに対応するinodeが作成されたときには常にコマンドを実行します。あなたが差し込まれたUSBデバイスを検出した後

はあなたがMac上で実行していると述べた/dev/ttyUSB(ドッキングウィンドウに関連するが、それでも関係ありません)

+0

ありがとう!それを試す必要があります。 – kashesandr

+0

私は上記で指摘した投稿の著者と議論しました。 'docker-machine'を実行しているときにデバイスが表示されないため、解決策は機能しません。 – kashesandr

関連する問題