Solana Docker RPC Node Guide
Run a Solana RPC node with Docker. Validators (with voting) are usually run on bare metal — Docker is appropriate for RPC/observer setups. For the Korean version see README.md.
Notes before you start
- Solana's primary client was renamed Agave (Anza fork) in 2024. Images and CLI maintain
solanaandagavealiases. - RPC nodes are I/O heavy — NVMe + high-memory hosts are required.
- Use the latest public snapshot; syncing from genesis is impractical.
Quick start
git clone https://github.com/anza-xyz/agave.git solana
cd solana/docker # or use the compose in this repo
docker compose up -d
docker compose logs -f validator
The local chains/solana/docker/docker-compose.yml in this repository wires up a non-voting Agave RPC node bound to the expected ports.
Ports
- 8899: HTTP JSON-RPC
- 8900: WebSocket
- 8000–8020: gossip / TPU
Status check
curl -s -X POST http://localhost:8899 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"getSlot"}'
curl -s -X POST http://localhost:8899 \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"getHealth"}'
Metrics endpoint (Prometheus)
Agave exposes metrics on port 9100 when --expose-metrics and --metrics-config are set. See ../localhost/README.md and the cluster wide setup in ../../../common/monitoring-stack.md.
Native host install
Full validator / RPC host install (systemd, agave-install, snapshots, etc.) is documented in ../localhost/README.md.