docs.waku.org/docs/guides/nwaku/run-docker.md
2024-03-20 14:56:30 +01:00

2.3 KiB

title hide_table_of_contents
Run Nwaku in a Docker Container true

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.

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.

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 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}'

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

:::tip 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. :::