Можно ли выставить устройство USB в контейнер lxc/docker?

У меня есть встроенный образ разработки системы, содержащийся в файле докеров. Чтобы прошивать код, мне нужно подключиться к узлам через USB Serial (например,/dev/ttyACM0).

С докере я использовал новую функцию привязки привязок к (см. https://github.com/dotcloud/docker/issues/111, -b или latedly--v), чтобы разоблачить узлы devfs в контейнере, Тем не менее, всякий раз, когда я подключаюсь ( "cat/d/ttyACM0", d - это привязка к dev) на устройство, я получаю "операцию не разрешенной". Возможно ли не только привязать монтирование, но фактически использовать символьные устройства в контейнере?

Может быть, даже возможно разоблачить конкретных разработчиков с помощью правил udev.

Ответ 1

Опция --device теперь позволяет подвергать Dev контейнеру, например:

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

(Найдено из этот ответ SO.

Ответ 2

В настоящий момент это невозможно с докером. Тем не менее, мы работаем над режимом "привилегии", который позволит контейнеру получать доступ к устройствам, таким как USB или GPU.

Ответ 3

Невозможно использовать сам докер (см. предыдущий ответ), используя lxc-cgroup непосредственно в запущенном контейнере, похоже, делает трюк для меня:

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

166 означает ttyACM, класс устройства

идентификатор докеры должен быть полным (через докеры проверить "ID" )