mirror of
https://github.com/sigp/lighthouse.git
synced 2026-04-19 05:48:31 +00:00
Some updates to Lighthouse book (#6995)
* #6447 - Move some deprecated pages to a new section under `Archived` - Remove fallback log in mev as the log will not be present after VC using `/eth/v3/validator/blocks` endpoint by default - Add warning against using Btrfs file system (thank you @ChosunOne for the report) - Add data shared by @mcdee on tree states API queries time - Rename partial withdrawals to validator sweep to differentiate it from the upcoming execution layer partial withdrawals - Update NAT API response - Update docs on IPv6 - Rename .md files to follow a standard prefix section name, e.g., installation_*.md, advanced_*.md - Standardise .md files using underscore `_` instead of hyphen `-` to be consistent with other files naming conventions.
This commit is contained in:
136
book/src/installation_docker.md
Normal file
136
book/src/installation_docker.md
Normal file
@@ -0,0 +1,136 @@
|
||||
# Docker Guide
|
||||
|
||||
There are two ways to obtain a Lighthouse Docker image:
|
||||
|
||||
1. [Docker Hub](#docker-hub), or
|
||||
2. By [building a Docker image from source](#building-the-docker-image).
|
||||
|
||||
Once you have obtained the docker image via one of these methods, proceed to [Using the Docker
|
||||
image](#using-the-docker-image).
|
||||
|
||||
## Docker Hub
|
||||
|
||||
Lighthouse maintains the [sigp/lighthouse][docker_hub] Docker Hub repository which provides an easy
|
||||
way to run Lighthouse without building the image yourself.
|
||||
|
||||
Obtain the latest image with:
|
||||
|
||||
```bash
|
||||
docker pull sigp/lighthouse
|
||||
```
|
||||
|
||||
Download and test the image with:
|
||||
|
||||
```bash
|
||||
docker run sigp/lighthouse lighthouse --version
|
||||
```
|
||||
|
||||
If you can see the latest [Lighthouse release](https://github.com/sigp/lighthouse/releases) version
|
||||
(see example below), then you've successfully installed Lighthouse via Docker.
|
||||
|
||||
### Example Version Output
|
||||
|
||||
```text
|
||||
Lighthouse vx.x.xx-xxxxxxxxx
|
||||
BLS Library: xxxx-xxxxxxx
|
||||
```
|
||||
|
||||
### Available Docker Images
|
||||
|
||||
There are several images available on Docker Hub.
|
||||
|
||||
Most users should use the `latest` tag, which corresponds to the latest stable release of
|
||||
Lighthouse with optimizations enabled.
|
||||
|
||||
To install a specific tag (in this case `latest`), add the tag name to your `docker` commands:
|
||||
|
||||
```bash
|
||||
docker pull sigp/lighthouse:latest
|
||||
```
|
||||
|
||||
Image tags follow this format:
|
||||
|
||||
```text
|
||||
${version}${arch}${stability}
|
||||
```
|
||||
|
||||
The `version` is:
|
||||
|
||||
* `vX.Y.Z` for a tagged Lighthouse release, e.g. `v2.1.1`
|
||||
* `latest` for the `stable` branch (latest release) or `unstable` branch
|
||||
|
||||
The `arch` is:
|
||||
|
||||
* `-amd64` for x86_64, e.g. Intel, AMD
|
||||
* `-arm64` for aarch64, e.g. Raspberry Pi 4
|
||||
* empty for a multi-arch image (works on either `amd64` or `arm64` platforms)
|
||||
|
||||
The `stability` is:
|
||||
|
||||
* `-unstable` for the `unstable` branch
|
||||
* empty for a tagged release or the `stable` branch
|
||||
|
||||
Examples:
|
||||
|
||||
* `latest-unstable`: most recent `unstable` build
|
||||
* `latest-amd64`: most recent Lighthouse release for older x86_64 CPUs
|
||||
* `latest-amd64-unstable`: most recent `unstable` build for older x86_64 CPUs
|
||||
|
||||
## Building the Docker Image
|
||||
|
||||
To build the image from source, navigate to
|
||||
the root of the repository and run:
|
||||
|
||||
```bash
|
||||
docker build . -t lighthouse:local
|
||||
```
|
||||
|
||||
The build will likely take several minutes. Once it's built, test it with:
|
||||
|
||||
```bash
|
||||
docker run lighthouse:local lighthouse --help
|
||||
```
|
||||
|
||||
## Using the Docker image
|
||||
|
||||
You can run a Docker beacon node with the following command:
|
||||
|
||||
```bash
|
||||
docker run -p 9000:9000/tcp -p 9000:9000/udp -p 9001:9001/udp -p 127.0.0.1:5052:5052 -v $HOME/.lighthouse:/root/.lighthouse sigp/lighthouse lighthouse --network mainnet beacon --http --http-address 0.0.0.0
|
||||
```
|
||||
|
||||
> To join the Holesky testnet, use `--network holesky` instead.
|
||||
|
||||
> The `-v` (Volumes) and `-p` (Ports) and values are described below.
|
||||
|
||||
### Volumes
|
||||
|
||||
Lighthouse uses the `/root/.lighthouse` directory inside the Docker image to
|
||||
store the configuration, database and validator keys. Users will generally want
|
||||
to create a bind-mount volume to ensure this directory persists between `docker
|
||||
run` commands.
|
||||
|
||||
The following example runs a beacon node with the data directory
|
||||
mapped to the users home directory:
|
||||
|
||||
```bash
|
||||
docker run -v $HOME/.lighthouse:/root/.lighthouse sigp/lighthouse lighthouse beacon
|
||||
```
|
||||
|
||||
### Ports
|
||||
|
||||
In order to be a good peer and serve other peers you should expose port `9000` for both TCP and UDP, and port `9001` for UDP.
|
||||
Use the `-p` flag to do this:
|
||||
|
||||
```bash
|
||||
docker run -p 9000:9000/tcp -p 9000:9000/udp -p 9001:9001/udp sigp/lighthouse lighthouse beacon
|
||||
```
|
||||
|
||||
If you use the `--http` flag you may also want to expose the HTTP port with `-p
|
||||
127.0.0.1:5052:5052`.
|
||||
|
||||
```bash
|
||||
docker run -p 9000:9000/tcp -p 9000:9000/udp -p 9001:9001/udp -p 127.0.0.1:5052:5052 sigp/lighthouse lighthouse beacon --http --http-address 0.0.0.0
|
||||
```
|
||||
|
||||
[docker_hub]: https://hub.docker.com/repository/docker/sigp/lighthouse/
|
||||
Reference in New Issue
Block a user