Installing Prysm with docker

Prysm can be installed on Windows, GNU/Linux, MacOS systems with Docker. This page includes instructions for performing this method.

Prysm Docker Setup


The Prysm installation script is the easiest and most efficient way of installing the latest binaries. Instructions for using it can be found here.

Have questions? Stop by the #documentation channel on Discord and let us know.

System requirements

Minimum specifications

These specifications must be met in order to successfully run the Prysm client.

  • Operating System: 64-bit Linux, Mac OS X 10.14+, Windows 64-bit
  • Processor: Intel Core i5โ€“760 or AMD FX-8100 or better
  • Memory: 8GB RAM
  • Storage: 20GB available space SSD
  • Internet: Broadband connection

Recommended specifications

These hardware specifications are recommended, but not required to run the Prysm client.

  • Processor: Intel Core i7โ€“4770 or AMD FX-8310 or better
  • Memory: 16GB RAM
  • Storage: 100GB available space SSD
  • Internet: Broadband connection


  • A modern operating system
  • The latest release of Docker installed

Where are the Docker files?

Instead of using the Dockerfiles, our team relies on the Bazel build system used by major companies to manage monorepositories. Bazel provides reproducible builds and a sandboxed environment that ensures everyone building Prysm has the same experience and can build our entire project from a single command. To see how to build the Docker images yourself from scratch for your own purposes, see our instructions here.

Downloading the Prysm Docker images

  1. Ensure you are running the most recent version of Docker by issuing the command:
docker -v
  1. Ensure that your user is a member of the docker group by issuing the command, where username is your user:
sudo usermod -aG docker username

Any changes made will take effect when your user next logs in.

  1. To pull the Prysm images, issue the following commands:
docker pull
docker pull

This process will also install any related dependencies.


For advanced users, the beacon-chain and validator images with debugging tools bundled in can be fetched instead by appending -alpine to the end of the images in the pull commands above. For example: docker pull .../prysm/validator:latest-alpine.

Now that your installation is done, you can then read joining eth2.

Managing the beacon node with Docker

Below are various methods of controlling the beacon node in Docker installations.

The beacon node can be halted by either using Ctrl+c or with the command:

docker stop beacon-node

To restart the beacon node, issue the following command:

docker start -ai beacon-node

To delete a corrupted container, issue the following command:

docker rm beacon-node

To recreate a deleted container and refresh the chain database, issue the start command with an additional --clear-db parameter where <YOUR_ETH1_NODE_ENDPOINT> is in the format of an http endpoint such as http://host:port (ex: http://localhost:8545 for geth) or an IPC path such as /path/to/geth.ipc:

docker run -it -v $HOME/.eth2:/data -p 4000:4000 -p 13000:13000 -p 12000:12000/udp --name beacon-node \ \
--datadir=/data \
--clear-db \
--rpc-host= \
--monitoring-host= \