Skip to main content

How to use the Docker Image

This page will guide you through the process of using the Docker image to run a MultiversX node.

Docker node images

As an alternative to the recommended installation flow, one could choose to run a MultiversX Node using the official Docker images: here

On the dockerhub there are Docker images for every chain (mainnet, devnet and testnet).

Images name:

Attention required

In order to get the latest tag for an image check the latest RELEASE from the config repository (mainnet, devnet or testnet).

How to pull a Docker image from Dockerhub for node ?

IMAGE_NAME=chain-mainnet
IMAGE_TAG=[latest_release_tag]
docker pull multiversx/${IMAGE_NAME}:${IMAGE_TAG}

How to generate a BLS key ?

In order to generate a new BLS key one has to pull from dockerhub an image for the chain-keygenerator tool:

# pull image from dockerhub
docker pull multiversx/chain-keygenerator:latest

# create a folder for the bls key
BLS_KEY_FOLDER=~/bls-key
mkdir ${BLS_KEY_FOLDER}

# generate a new BLS key
docker run --rm --mount type=bind,source=${BLS_KEY_FOLDER},destination=/keys --workdir /keys multiversx/chain-keygenerator:latest

How to run a node with Docker ?

The following commands run a Node using the Docker image and map a container folder to a local one that holds the necessary configuration:

PATH_TO_BLS_KEY_FILE=/absolute/path/to/bls-key
IMAGE_NAME=chain-mainnet
IMAGE_TAG=[latest_release_tag]

docker run --mount type=bind,source=${PATH_TO_BLS_KEY_FILE}/,destination=/data multiversx/${IMAGE_NAME}:${IMAGE_TAG} \
--validator-key-pem-file="/data/validatorKey.pem"

In the snippet above, make sure you adjust the path to a valid key file and also provide the appropriate command-line arguments to the Node. For more details go to Node CLI.

Attention required

Devnet and Testnet validators should carefully specify the precise tag when using the Docker setup, always test the new releases themselves, and only deploy them once they understand and agree with the changes.

For CentOS users

If the node's docker image runs on CentOS, the machine needs the allow_execheap flag to be enabled.

In order to do this, run the command sudo setsebool allow_execheap=true