About Docker
Docker is the system we use to install and run software on our servers. Rather than installing software directly onto the server’s operating system — which can be messy, fragile, and hard to undo — Docker packages each application into a self-contained unit called a container. The container includes everything the application needs to run. Installing a new service is as simple as pointing Docker at the right package; removing it leaves no traces behind.
Almost every piece of software we might want to run is available as a ready-made Docker package, maintained by the people who built it. We have very little to do to install, configure, or keep it up to date. In practice, running a service on one of our servers looks much the same regardless of what the service actually does — Docker handles the differences.
What we use it for
Every internal service running on our Raspberry Pi servers runs inside Docker. This includes n8n (automation), Home Assistant (home automation), and anything else we add in the future.
How it’s managed
Docker is installed on each server during the initial setup process. Day-to-day, services
are managed using a tool called Docker Compose, which lets us start, stop, and restart
a service with a single command. The configuration for each service — what Docker image
to use, what ports to open, where to store data — lives in a file called
docker-compose.yml alongside the service.
Common commands (run on the server, inside the service’s folder):
docker compose up -d # start the service
docker compose down # stop the service
docker compose ps # check whether it's running
docker compose logs -f # watch the live log output
Where to find it
Docker itself doesn’t have a web interface. It runs quietly in the background on each server. The services it runs may have their own web interfaces — see the individual service pages for details.