Running in Docker

We keep a Docker image with recent snapshot builds from the develop branch on DockerHub. In addition to the container based on Ubuntu (158 MB), there is a smaller image using Alpine Linux (35 MB). To use the alpine tag, replace ethereum/client-go with ethereum/client-go:alpine in the examples below.

To pull the image, run this command:

docker pull ethereum/client-go

Start a node with:

docker run -it -p 30303:30303 ethereum/client-go

To start a node that runs the JSON-RPC interface on port 8545, run:

docker run -it -p 8545:8545 -p 30303:30303 ethereum/client-go --rpc --rpcaddr "0.0.0.0"

WARNING: This opens your container to external calls. “0.0.0.0” should not be used when exposed to public networks

To use the interactive JavaScript console, run:

docker run -it -p 30303:30303 ethereum/client-go console

Using Data Volumes

To persist downloaded blockchain data between container starts, use Docker data volumes. Replace /path/on/host with the location you want to store the data in.

docker run -it -p 30303:30303 -v /path/on/host:/root/.ethereum ethereum/client-go