在非特权和非主机网络模式下,docker 中的 hcitool lescan(蓝牙 LE 或任何蓝牙扫描)是否可能?

在非特权和非主机网络模式下,docker 中的 hcitool lescan(蓝牙 LE 或任何蓝牙扫描)是否可能?

对于特定任务,我无法在非特权和非主机网络模式下扫描 Docker 中的BLE / BlueZ ( hcitoolgatttool、 )。btdevice-l

这些是我的结果(在 Debian-Jessie-8.8.0 Host 和 中debian:jessie docker image):

 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

我什至为主机上的 Docker 授予了 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

那么,是否有可能在非特权和非主机网络模式下扫描 docker 中的 BLE / BlueZ?

答案1

成功一半:

在 Docker 社区的帮助下,我通过登录 Docker 成功启动了 Docker 容器内的 DBus 服务,如下所示:

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

只是想接下来启动蓝牙服务...如果有人有任何线索,那会很有帮助。

相关内容