Skip to main content

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.

info

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 wakuorg/nwaku repository. Please visit wakuorg/nwaku/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...]

Run nwaku using the most typical configuration:

docker run -i -t -p 60000:60000 -p 9000:9000/udp wakuorg/nwaku:v0.32.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}'

For more detailed information about all possible configurations, please run

docker run -t wakuorg/nwaku:v0.32.0 --help
info

Note that running a node in The Waku Network (--cluster-id=1) requires a special set of configurations and therefore, it is recommended to run in this case with docker compose

info

We recommend using explicit port mappings (-p) when exposing ports accessible from outside the host (listening and discovery ports, API servers).

tip

If you encounter issues running your node or require assistance with anything, please visit the - Visit the #help-desk channel on Discord.

Congratulations!

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.