Docker images
Docker images for the Nimbus beacon node and the Nimbus validator client are available at docker hub.
We have version-specific Docker tags (e.g. statusim/nimbus-eth2:amd64-v1.2.3
) and a tag for the latest image (e.g. statusim/nimbus-eth2:amd64-latest
).
These images contain the same binaries as the release tarballs inside a debian:bullseye-slim
image, running under a user imaginatively named user
, with UID:GID of 1000:1000.
The binaries are placed under the /home/user/
directory which is also the default WORKDIR.
The ENTRYPOINT of the image is configured to directly launch the respective binary without any extra arguments.
Usage
Before running Nimbus via docker, you need to prepare a data directory and mount it in docker.
It is recommended that you mount the directory at /home/user/data
and pass --data-dir=data/beacon_node/mainnet_0
to all nimbus_beacon_node
commands.
mkdir data
docker run -it --rm \
-v ${PWD}/data:/home/user/data \
statusim/nimbus-eth2:amd64-latest \
--data-dir=data/beacon_node/mainnet_0
--network=mainnet \
[other options]
Similarly, to launch a Nimbus validator client you can use the following command:
mkdir data
docker run -it --rm \
-v ${PWD}/data:/home/user/data \
statusim/nimbus-validator_client:amd64-latest \
--data-dir=data/validator_client/mainnet_0 \
[other options]
Warning
Do not use the same data directory for beacon node and validator client! They will both try to load the same keys which may result in slashing.
Docker compose
Our preferred setup is using docker-compose
.
You can use one of our example configuration files as a base for your own custom configuration:
Note
The rather voluminous logging is done on stdout
, so you might want to change the system-wide Docker logging defaults (which dumps everything in /var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID-json.log
) to something like syslog
.
We recommend using a log rotation system with appropriate intervals for logs of this size.