특정 작업의 경우,권한이 없고 호스트가 아닌 네트워크 모드의 Docker( hcitool
, , ) 에서 BLE/BlueZ를 검색할 수 없습니다 .gatttool
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
다음에 블루투스 서비스를 시작하는 것에 대해 생각해보세요. 도움이 될 만한 단서가 있는 사람이 있다면.