Skip to content

Docker Operations

The repository provides several Dockerfiles in etc/docker/:

DockerfilePurpose
Dockerfile.clientMain Base Reth Node client
Dockerfile.builderBlock builder service
Dockerfile.devnetLocal development network setup
Dockerfile.websocket-proxyWebSocket proxy for flashblock streaming
Terminal window
docker build -t base-reth-node -f etc/docker/Dockerfile.client .
Terminal window
docker build -t base-builder -f etc/docker/Dockerfile.builder .
Terminal window
docker build -t websocket-proxy -f etc/docker/Dockerfile.websocket-proxy .
Terminal window
docker run -it --rm \
-p 8545:8545 \
-p 8546:8546 \
-p 30303:30303 \
-p 30303:30303/udp \
-p 9222:9222 \
-p 9222:9222/udp \
-v /path/to/data:/data \
base-reth-node [OPTIONS]

Common flags:

  • -p 8545:8545 — HTTP JSON-RPC
  • -p 8546:8546 — WebSocket JSON-RPC
  • -p 30303:30303 (TCP/UDP) — discv4 P2P discovery and RLPx
  • -p 9222:9222 (TCP/UDP) — Reth discv5 peer discovery
  • -v /path/to/data:/data — Persistent data volume

In addition to the ingress ports above, the node needs outbound access to the Base bootnodes for initial peer discovery. Operators running behind strict egress filtering must allow outgoing traffic to ports 30301 (TCP/UDP) and 9200 (UDP); without these, the node cannot bootstrap into the peer set.

The repository includes a Docker Compose configuration for running a local devnet:

Terminal window
docker compose --env-file etc/docker/devnet-env \
-f etc/docker/docker-compose.yml up -d --build

See Local Devnet for the full devnet setup guide.

For production use, the official images are published at:

ghcr.io/base/node-reth

See the base/node repository for release tags and configuration.