Возможен ли hcitool lescan (Bluetooth LE) в докере в режиме непривилегированной и не хостовой сети?

704
Edwin K

Я новичок в докере. Для конкретной задачи мне не удается сканировать BLE / BlueZ в докере в непривилегированном и не хостовом режиме сети. Это мои результаты в хосте Debian-Jessie-8.8.0 и в образе Debian: образ докера jessie):

root1@73ab53a9268e:/# hciconfig -a Can't open HCI socket.: Operation not permitted root1@73ab53a9268e:/# bt-device -l Couldn't connect to DBus system bus: Could not connect: Connection refused root2@0d208802d44a:/# hciconfig -a Can't open HCI socket.: Address family not supported by protocol 

Я даже дал разрешения ALL-CAP для докера на хосте, но все равно не смог этого сделать.

docker run --name container-ID --cap-add=ALL -d -v /var/run/docker.sock:/host/var/run/docker.sock -v /dev:/host/dev -v /proc:/host/proc:ro -v /lib/modules:/host/lib/modules:ro -v /usr:/host/usr:ro Image-ID 

Итак, возможно ли случайно сканировать BLE / BlueZ в докере в непривилегированном и не хостовом режиме сети?

0

2 ответа на вопрос

1
Edwin Kannaiyan

Почти сделано...!

С помощью сообщества Docker, во- первых, я успешно запустил службу DBus в Docker- контейнере, выполнив вход в Docker следующим образом:

docker run -v /opt/bluetooth:/var/lib/bluetooth -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /tmp/$(mktemp -d):/run -it debian:jessie

Затем, добавив --cap-add = SYS_ADMIN и --net = host это разрешение, можно запустить службу Bluetooth.

docker run --cap-add=SYS_ADMIN -v /opt/bluetooth:/var/lib/bluetooth -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /tmp/$(mktemp -d):/run --net=host -it debian:jessie

Теперь просто ищем запуск службы bluetooth с помощью «Не использовать пространство имен сети хоста» (настройка --net = host to private network)

Если у кого-то есть ключ, это будет полезно.

0
Edwin Kannaiyan

Мне удалось наполовину:

С помощью сообщества Docker я успешно запустил службу DBus в Docker-контейнере, выполнив вход в Docker следующим образом:

docker run -v /opt/bluetooth:/var/lib/bluetooth -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ -v /tmp/$(mktemp -d):/run -it debian:jessie 

Просто хочу запустить службу Bluetooth дальше ... если кто-нибудь поймет, это будет полезно.