Prerequisites¶
Docker and Docker Compose¶
In order to deploy a node for the federated learning experiment, you will need Docker and Docker Compose.
Docker is a tool that runs software inside containers, which are self-contained packages that bundle a program with all its dependencies.
Docker Compose builds on Docker to start and manage several containers together from a single configuration file (docker-compose.yml).
Check if Docker is installed and working:
docker run hello-world
This command downloads a test image and runs it in a container. When the container runs, it prints a message like this before exiting:
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
Note
You can check your Docker version with:
docker version --format '{{.Server.Version}}'
29.7.0
Any recent version of Docker should work. These instructions were tested with Docker 29.1.3, 29.6.2 and 29.7.0.
If Docker is not installed, see these instructions to install it and make sure to follow the post-setup instructions.
Attention
Installing Docker and Docker Compose requires sudo privileges.
If you do not have sudo privileges, you will need to ask a sys admin or your IT department to do the installation for you.
Also make sure Docker Compose is installed:
docker compose version
You should get something like this:
Docker Compose version v5.3.1
Note
Any recent version of Docker Compose should work. These instructions were tested with versions 2.37.1 and 5.3.1.
If Docker Compose is not installed, follow these instructions (or ask a sys admin) to install it.
Troubleshooting: permission error¶
If you get a permission denied error, check if your user is in the docker group:
groups
If docker is not in any of the groups listed, follow this guide (or ask your sys admin) to add it.
Networking¶
Each site connects to the federated network through a WireGuard virtual private network (VPN).
In order to join the federated network, your machine needs outbound UDP access to an external server, on the host and port given by VPN_SERVER_ENDPOINT in the config.env file. No inbound ports need to be opened.