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:
- for mainnet: chain-mainnet
- for devnet: chain-devnet
- for testnet: chain-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.
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.
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