Overview

View source on GitHub

OpenThread Border Router (OTBR) provides Docker support, and can be run in a Docker container rather than directly on your local machine.

This guide focuses on running OTBR Docker on the Raspberry Pi (RPi).

Raspberry Pi setup

Install the Raspberry Pi OS with Desktop OS on the RPi. Both Desktop and Lite versions will work.

Once installed, boot up the RPi and open a terminal window.

  1. Update the system:

    sudo apt-get update
    sudo apt-get upgrade
    

  2. Install Docker:

    curl -sSL https://get.docker.com | sh
    
  3. If you want to use Docker as non-root, without requiring sudo before each command, modify your user settings. Sign out for the changes to take effect:

    sudo usermod -aG docker $USER
    

  4. Start Docker if it is not already running:

    sudo dockerd
    

  5. Enable IP forwarding.

    Linux typically disables IP forwarding by default. Run the setup-host script to enable IP forwarding on the host system.

    curl -sSL https://raw.githubusercontent.com/openthread/ot-br-posix/refs/heads/main/etc/docker/border-router/setup-host | bash
    

Get the OTBR Docker image

Get the OTBR Docker image by pulling it directly from the OpenThread Docker Hub, or by cloning the OTBR repository and building the included Dockerfile locally.

We recommend pulling the image from Docker Hub, as it has been tested and verified by the OpenThread team.

Pull the image from Docker Hub

  1. Pull the image:

    docker pull openthread/border-router:latest
    

  2. It should now appear in your list of Docker images:

    docker images
    REPOSITORY                 TAG       IMAGE ID       CREATED       SIZE
    openthread/border-router   latest    08666d77013d   2 hours ago   171MB
    

Build the Dockerfile

To create the image yourself, clone the OpenThread Border Router repository and build the included Dockerfile.

  1. Install git:

    sudo apt install git
    

  2. Clone the OTBR repository:

    cd ~
    git clone https://github.com/openthread/ot-br-posix
    cd ot-br-posix
    

  3. Build the Dockerfile:

    docker build --no-cache -t openthread/border-router -f etc/docker/border-router/Dockerfile .