2013-07-22 10 views
10

Ich habe ein Embedded-System-Entwicklungs-Image in einer Docker-Datei enthalten. Um den Code zu flashen, muss ich mich über USB Serial (z. B./dev/ttyACM0) mit den Knoten verbinden.Ist es möglich, ein USB-Gerät einem lxc/docker Container auszusetzen?

Mit Docker habe ich die neue Funktion zum Einbinden von Bindungen verwendet (siehe https://github.com/dotcloud/docker/issues/111, Option -b oder latted? -v), um die Hosts devfs dem Container zugänglich zu machen. Jedoch, immer wenn ich verbinde ("cat/d/ttyACM0", d ist die Bindung mount an dev) an das Gerät bekomme ich "Operation nicht erlaubt". Ist es möglich, nicht nur Mount zu binden, sondern tatsächlich Zeichengeräte im Container zu verwenden?

Wäre es vielleicht sogar möglich, bestimmte Devs über udev-Regeln offenzulegen.

Antwort

2

die --device Option ermöglicht es nun einen Entwickler an einem Behälter ausgesetzt wird, zB .:

docker run -t -i --device=/dev/ttyUSB0 ubuntu bash 

(Gefunden von this SO answer.)

+0

Danke - ich habe den wesentlichen Teil hier kopiert. Ich glaube, ich habe zumindest einen Teil der Frage beantwortet ("Ist es möglich, nicht nur Mount zu binden, sondern tatsächlich Zeichengeräte im Container zu verwenden?"). – tuomassalo

4

Im Moment ist dies mit Andockfenster nicht möglich. Wir arbeiten jedoch an einem privilegierten Modus, der es einem Container ermöglicht, auf Geräte wie USB oder GPU zuzugreifen.

0

Obwohl es nicht möglich, über Docker selbst (siehe vorherige Antwort) lxc-cgroup direkt auf dem Laufbehälter mit scheint für mich, den Trick zu tun:

sudo lxc-cgroup -n 0dd4c652d0740e5ddb6f80e6f2ec2c52dd6435b22c8114c000c58ca9703ebc62 devices.allow "c 166:* rwm" 

166 steht für ttyACM, die Geräteklasse

die docker-ID muss die komplette eins sein (über docker „ID“ inspizieren)

+0

BTW: Hinzufügen zu config.lxc nicht – till

+0

Hinweis für mich zu arbeiten scheint, dass es auf Docker und LXC-Befehle zur gleichen Zeit gefährlich verlassen ist. Während Docker nutzt LXC, wird es möglicherweise nicht in der Zukunft und keine Kompatibilität garantiert, soweit ich weiß. – qkrijger