Run Nwaku in a Docker Container
This guide provides detailed steps to build and run a nwaku node in a Docker container. If you prefer a pre-configured setup with a monitoring dashboard, see the Run Nwaku with Docker Compose guide.
Prerequisites
Ensure Docker is installed on your system using the appropriate instructions provided in the Docker documentation.
We recommend running a nwaku node with at least 2GB of RAM, especially if WSS is enabled. If running just a Relay node, 0.5GB of RAM is sufficient.
Get Docker image
The Nwaku Docker images are available on the Docker Hub public registry under the statusteam/nim-waku repository. Please visit statusteam/nim-waku/tags for images of specific releases.
Build Docker image
You can also build the Docker image locally:
# Clone the repository
git clone --recurse-submodules https://github.com/waku-org/nwaku
cd nwaku
# Build docker image
make docker-image
Run Docker container
Run nwaku in a new Docker container:
docker run [OPTIONS] [IMAGE] [ARG...]
- OPTIONSare your selected Docker options
- IMAGEis the image and tag you pulled from the registry or built locally
- ARG...is the list of arguments for your node configuration options
Run nwaku using the most typical configuration:
docker run -i -t -p 60000:60000 -p 9000:9000/udp statusteam/nim-waku:v0.20.0 \
  --dns-discovery=true \
  --dns-discovery-url=enrtree://AIRVQ5DDA4FFWLRBCHJWUWOO6X6S4ZTZ5B667LQ6AJU6PEYDLRD5O@sandbox.waku.nodes.status.im \
  --discv5-discovery=true \
  --nat=extip:[YOUR PUBLIC IP] # or, if you are behind a nat: --nat=any
To find your public IP, use:
dig TXT +short o-o.myaddr.l.google.com @ns1.google.com | awk -F'"' '{ print $2}'
We recommend using explicit port mappings (-p) when exposing ports accessible from outside the host (listening and discovery ports, API servers).
If you encounter issues running your node or require assistance with anything, please visit the #node-help channel on our Discord.
You have successfully built and started a nwaku node in a Docker container. Have a look at the Node Configuration Examples guide to learn how to configure nwaku for different use cases.