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?



  • You don't seem to understand the issue. The issue is not related to the board running the Matter End Device, but it's related to the OpenThread Border Router running in a Docker container and the RCP. The RCP board is the nRF52840 USB Dongle.

    Why don't you try to re-produce in your environement?

  • I tried to reproduce the issue last week using the nRF52840 DK and our light bulb sample, but I did not get any issues.

    The commissioning fails during operational discovery, which is the step where the chip-tool uses DNS-SD to discover the device and its IP address. This issue could occur due to network issues or incorrect configuration of the Thread network, but I cannot say for certain that it is not due to the device when you are testing with a third party device and/or code.

    For the RCP, did you use the co-processor sample in the nRF Connect SDK and build it with overlays for USB? I have attached the hex file I used for the RCP when testing. You can use the nRF Connect Programmer app to program the dongle.

    Are you running chip-tool on the same computer as the docker OTBR, or on a separate computer?

    Please share the output you get when checking the status of the OTBR and Thread node, i.e. steps 10 and 11 in the guide for running OTBR using docker:

    10. Check the status of the OpenThread Border Router by executing the following command:

    sudo docker exec -it otbr sh -c "sudo service otbr-agent status"
    

    11. Check the status of the Thread node running inside the Docker:

    sudo docker exec -it otbr sh -c "sudo ot-ctl state"
    

    4617.zephyr.hex

  • "I tried to reproduce the issue last week using the nRF52840 DK and our light bulb sample, but I did not get any issues."

    Can you describe your lab setup?

    "Are you running chip-tool on the same computer as the docker OTBR, or on a separate computer?"

    On a separate computer.

  • Izvor said:

    "Are you running chip-tool on the same computer as the docker OTBR, or on a separate computer?"

    On a separate computer.

    Please try running chip-tool on the same computer.

    Izvor said:

    "I tried to reproduce the issue last week using the nRF52840 DK and our light bulb sample, but I did not get any issues."

    Can you describe your lab setup?

    Setup:

    • A computer with Ubuntu 20.04 for docker OTBR and chip-tool.
    • nRF52840 Dongle for RCP, running the co-processor sample as described in Configuring a radio co-processor.
    • nRF52840 DK with the light bulb sample.
    • SDK: nRF Connect SDK v2.5.1

    The chip-tool was built manually from sources as described in Building the CHIP Tool, and I followed the Running OTBR using Docker for the OTBR. In step 7 I used the GUI to form the Thread network. I ran the chip-tool on the same computer as the docker OTBR.

  • Ok, not strange that it works when you are running everything on one computer!

    In my original question:

    "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." (when run from another computer)

    Isn't it supposed to work across multiple computers? Like it does when running on bare metal?

Related