1

My docker version is:

docker --version

Docker version 20.10.2, build 2291f61

My windows version is:

systeminfo

Nom du système d’exploitation:              Microsoft Windows 10 Professionnel
Version du système:                         10.0.17763 N/A version 17763
Type du système:                            x64-based PC

My Dockerfile is:

FROM ubuntu:21.04
RUN apt update
RUN apt-get install -y bluez bluetooth usbutils

When I run the following command, I start the 'bluetooth_in_docker' container:

docker build -t bluetooth_in_docker . & docker run --privileged --net=host -it bluetooth_in_docker bash

Inside the container when I run the following, I get an error:

hciconfig dev

Can't open HCI socket.: Address family not supported by protocol

1 Answers1

0

I got it working on Windows from inside WSL2, but it takes a lot of steps.

  • Follow https://github.com/dorssel/usbipd-win/discussions/310 to get your bluetooth working inside WSL2. Verify that you can scan for bluetooth devices inside your WSL2 distro.

  • modify your dockerfile to install bluetooth as you did (bluez and usb-utils might not be needed)

  • Now there are 2 options. First option shares bluetooth with container. Second option gives container exclusive control.

    1. Sharing bluetooth between the host and the container is possible by making a volume mount of /var/run/dbus and running it with --privileged:

      docker run -v /var/run/dbus/:/var/run/dbus/:z --privileged {containerImage}
      

      Make sure that the dbus and bluetooth services are working in your host when running the container this way.

    2. Giving the container exclusive control: in WSL2 (the host), run a docker container according to https://stackoverflow.com/a/64126744/1114918

    • run sudo service bluetooth stop to make your bluetooth not "claimed" by the host (the linked answer uses killall, I think sudo service ... stop is cleaner)
    • use a sh script to start dbus and bluetooth inside the container
    • run the container using
      docker run --rm --net=host --privileged myimage:mytag
      
hansmbakker
  • 1,108
  • 14
  • 29