Docker repository can be found here:
We are currently supporting docker images for the following CPU architectures:
AMD64
ARM64
ARM32 ⚠ ⚠ ⚠
ARM32 docker image is broken now. We are working on a fix at the moment.
Tag | Description | Architecture |
| The latest Nethermind Debian based image | x86_64, ARM64, ARM32 |
To use one of the previous versions you can pass {tag}
e.g. 1.8.50
before the main image name.
For example if you wish to use version 1.7.4
of Nethermind Debian image, the image name would be nethermind/nethermind:1.7.4
.
All versions are available in tags history.
Docker pull command:
docker pull nethermind/nethermind
In order to start Nethermind.Runner
, simply run:
docker run -it nethermind/nethermind
You can use --help
to get a list of possible start parameters for Nethermind or you can find them all here.
docker run -it nethermind/nethermind --help
It’s possible to modify each configuration property via environment variable, using a simple convention:
NETHERMIND_{MODULE}CONFIG_{PROPERTY} or --{Module}.{Property}
For example:
NETHERMIND_INITCONFIG_ISMINING=true or --Init.IsMining
Environment variables are to be passed before the docker image tag while parameters should be passed right after the docker image tag.
Environment variables can be easily used within docker-compose.yml files in the environment section
To enable JSON RPC, share the host’s networking namespace with --network host
and set--JsonRpc.Enabled true
. To change port simply pass--JsonRpc.Port 8550
.
If running locally:
docker run -it --network host nethermind/nethermind --JsonRpc.Enabled true
or with port-mapping
docker run -it -p 8545:8545 nethermind/nethermind --JsonRpc.Enabled true --JsonRpc.Host 0.0.0.0
If running from a VM you may want to expose JSON RPC to the outer world via --JsonRpc.Host {hostmachine_ip}
(127.0.0.1
is set by default). You may try setting --JsonRpc.Host 0.0.0.0
if you still can not connect with JSON RPC.
To switch the network use --config {network}
flag (default value is mainnet
).
mainnet
goerli
rinkeby
ropsten
xdai
poacore
sokol
volta
energyweb
For example to run Nethermind on goerli
network:
docker run -it nethermind/nethermind --config goerli
To successfully map volumes such as database, keystore, logs
at one go you can use --datadir
command option:
docker run -it -v /home/user/data:/nethermind/data nethermind/nethermind --datadir data
To fully override a configuration file, you need to use a volume:
-v /home/user/mainnet.cfg:/nethermind/configs/mainnet.cfg
In order to map an internal database to a local volume, you need to map /nethermind/nethermind_db/
:
-v /home/user/nethermind_db:/nethermind/nethermind_db
Logs can be mapped with the following command:
-v /home/user/logs:/nethermind/logs
Keystore:
-v /home/user/keystore:/nethermind/keystore
Nlog:
-v /home/user/NLog.config:/nethermind/NLog.config
More detailed NLog configuration can be found here.
Dockerfile can be found in the repository root and it currently uses the power of multi-arch builds:
File Name | Description | Architecture |
requires to have a cloned repository in order to build a Debian based image | x86_64, ARM64, ARM32 | |
doesn’t require to have a cloned repository, as it will download it during the first step | x86_64 |
In order to build the images, run either:
docker build -t nethermind .
or to specify other Dockerfile use -f
flag:
docker build -f Dockerfile_full -t nethermind .
Example usage of the locally created docker-image:
docker run -it nethermind --config goerli