Running OpenThread Border Router in Docker?

What are the limitations for running OpenThread Border Router in Docker?

I have not been able to successfully use it to build a Thread network and join Matter devices to it. I would like to be able to setup and run it in a Docker container and use it as if I installed the OTBR software on bare metal.

If I run on bare metal, I can use this command running on another computer to see the service:

avahi-browse -r -t _meshcop._udp

If I run OTBR in Docker and run the above command, I cannot see any services.

It looks like to network traffic from the Docker container isn't properly integrated with the LAN network.

Have anyone successfully done this?



Parents Reply Children
  • Yes, I have tried following the steps in that article.

    It's a bit unclear to me what this means:

    "For development purposes, you can run the OpenThread Border Router on any Linux-based system using a Docker container that already has the Border Router installed. This solution can be used when you are only interested in direct communication between your Border Router and the Thread network. For example, you can use the Docker container when you want to establish IP communication between an application running on Linux (such as the CHIP Tool Matter controller) and an application running on a Thread node."

    What exactly are the restrictions are there when running OTBR in a Docker container compared with running it on bare metal? 

  • Hi,

    If you have a physical Thread RCP then there should not be any limitations when running OTBR in docker compared to directly on your machine.

    Did you see get any errors or issues when setting up the OTBR according to the guide?

    Best regards,
    Marte

  • I don't get any errors. Just not able to pair a Matter End Device to the Thread network.

  • Hi,

    Are you using chip tool to commission the device? Please share logs from the device, as well as chip tool if you are using that.

    Best regards,
    Marte

  • 1) Running OTBR on bare metal

    Checking from another computer:

    ubuntu@ubuntu:~$ avahi-browse -r -t _meshcop._udp
    + eth0 IPv6 OpenThread BorderRouter #EDEC _meshcop._udp local
    + eth0 IPv4 OpenThread BorderRouter #EDEC _meshcop._udp local
    = eth0 IPv6 OpenThread BorderRouter #EDEC _meshcop._udp local
    hostname = [otbr.local]
    address = [192.168.1.232]
    port = [49152]
    txt = ["dn=DefaultDomain" "sb=\000\000\000!" "xa=\"��.\019���" "tv=1.3.0" "xp=ޭ\000��\000��" "nn=OpenThread" "mn=BorderRouter" "vn=OpenThread" "id=� U�{H\012��\025�\"��&�" "rv=1"]
    = eth0 IPv4 OpenThread BorderRouter #EDEC _meshcop._udp local
    hostname = [otbr.local]
    address = [192.168.1.232]
    port = [49152]
    txt = ["dn=DefaultDomain" "sb=\000\000\000!" "xa=\"��.\019���" "tv=1.3.0" "xp=ޭ\000��\000��" "nn=OpenThread" "mn=BorderRouter" "vn=OpenThread" "id=� U�{H\012��\025�\"��&�" "rv=1"]
    ubuntu@ubuntu:~$

    2) Running OTBR in Docker container.

    Checking from another computer:

    ubuntu@ubuntu:~$ avahi-browse -r -t _meshcop._udp
    ubuntu@ubuntu:~$

    If avahi-browse doesn't see the Thread mDNS broadcasts it's even not needed to try the chip-tool pairing.

Related