We have version-specific Docker tags (e.g.
statusim/nimbus-eth2:amd64-v1.2.3) and a tag for the latest image (e.g.
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.
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
Similarly, to launch a Nimbus validator client you can use the following command:
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!
Our preferred setup is using
docker-compose. You can use one of our example configuration files as a base for your own custom configuration:
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.