Files
nanoreth/book/installation/docker.md
Paolo Facchinetti da58e39c26 feat: add docker compose with docs (#3496)
Co-authored-by: Oliver Nordbjerg <hi@notbjerg.me>
2023-07-03 13:04:17 +00:00

2.6 KiB

Docker

There are two ways to obtain a Reth Docker image:

  1. GitHub
  2. Building it from source

Once you have obtained the Docker image, proceed to Using the Docker image.

GitHub

Reth docker images for both x86_64 and ARM64 machines are published with every release of reth on GitHub Container Registry.

You can obtain the latest image with:

docker pull ghcr.io/paradigmxyz/reth

Or a specific version (e.g. v0.0.1) with:

docker pull ghcr.io/paradigmxyz/reth:v0.0.1

You can test the image with:

docker run --rm ghcr.io/paradigmxyz/reth --version

If you can see the latest Reth release version, then you've successfully installed Reth via Docker.

Building the Docker image

To build the image from source, navigate to the root of the repository and run:

docker build . -t reth:local

The build will likely take several minutes. Once it's built, test it with:

docker run reth:local --version

Using the Docker image

There are two ways to use the Docker image:

  1. Using Docker
  2. Using Docker Compose

Using Plain Docker

To run Reth with Docker, run:

docker run \
    -v rethdata:/root/.local/share/reth/db \
    -d \
    -p 9000:9000 \
    --name reth \
    reth:local \
    node \
    --metrics 0.0.0.0:9000

The above command will create a container named reth and a named volume called rethdata for data persistence.

It will use the local image reth:local. If you want to use the GitHub Container Registry remote image, use ghcr.io/paradigmxyz/reth with your preferred tag.

Using Docker Compose

To run Reth with Docker Compose, run the following command from a shell inside the root directory of this repository:

./etc/generate-jwt.sh
docker compose -f etc/docker-compose.yml up -d

To check if Reth is running correctly, run:

docker compose logs -f reth

The default docker-compose.yml file will create four containers:

  • Reth
  • Prometheus
  • Grafana
  • Lighthouse

Grafana will be exposed on localhost:3000 and accessible via default credentials (username and password is admin)

Interacting with Reth inside Docker

To interact with Reth you must first open a shell inside the Reth container by running:

docker exec -it reth bash

If Reth is running with Docker Compose, replace reth with reth-reth-1 in the above command

Listing the tables

reth db stats

Viewing some records

reth db list --start=1 --len=2 Headers