docker - hcitool lescan(BLE 或任何扫描,例如 hcitool、gatttool、btdevice-l 等...)在非特权和非主机网络模式下的 docker 中是否可能?

标签 docker bluetooth-lowenergy bluez

我是 docker 的新手。对于特定任务,

我无法在非特权和非主机网络模式下扫描 docker 中的 BLE/BlueZ。 这些是我的结果>(在 Debian-Jessie-8.8.0 主机和 debian:jessie docker 镜像中) root1@73ab53a9268e:/# hciconfig -a --> 无法打开 HCI 套接字。:不允许操作

root1@73ab53a9268e:/# bt-device -l --> 无法连接到 DBus 系统总线:无法连接:连接被拒绝

另一张图片==>> root2@0d208802d44a:/# hciconfig -a --> 无法打开 HCI 套接字。:协议(protocol)不支持地址族

我什至为主机上的 docker 授予了 ALL-CAP 权限,但仍然无法成功。

docker run --name 容器 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 图像 ID

So, is it possible by any chance to scan BLE / BlueZ (say, hcitool, gatttool, btdevice-l, etc...) in docker under Non-Privileged & Non-Host network mode ?

最佳答案

通过添加--cap-add=SYS_ADMIN、--cap-add=NET_ADMIN--net=host<在docker容器内成功启动DBus/蓝牙服务并扫描蓝牙设备/strong> 标志/权限

docker run --cap-add=SYS_ADMIN --cap-add=NET_ADMIN --net=host -it debian:jessie

(在没有--privileged模式的情况下成功)现在只想通过“不共享主机网络命名空间”来启动蓝牙服务(将--net=host自定义为私有(private)网络)

关于docker - hcitool lescan(BLE 或任何扫描,例如 hcitool、gatttool、btdevice-l 等...)在非特权和非主机网络模式下的 docker 中是否可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47264193/

相关文章:

docker - 尝试在 Raspberry Pi 3B+ 上运行 OpenFaas 函数时出现 ImageInspectError

ruby-on-rails - 与docker-compose bundle 在一起可从头开始安装gem

docker - 如何从 linux wsl2 访问 docker 数据

android - BLE android 5.0 崩溃

bluetooth - 网络蓝牙 : Want to exclude certain devices when using navigator. bluetooth.requestDevice

python - 检测蓝牙 Remote 上的按钮(HID over GATT)

docker - Traefik Docker 热重载配置

c - BlueZ 4.99 中的蓝牙健康设备配置文件 (HDP) 接收器实现?

c++ - 蓝牙:使用 Bluez 检测事件

linux - BlueZ:不使用 sdptool 命令添加服务、属性和配置文件