Lab Objective:
- At the end of this lab, you’ll learn to manage a home lab environment that includes:
- Docker image and container management via Portainer
- Reverse proxy access using
nginx-proxy and PiHole
- Network and productivity application installations
What is Portainer?
- Portainer is a beginner-friendly web application that facilitates the management of Docker containers through a visual interface. It lets you start, stop, update, and monitor containers from a web browser, helping you see how your home lab is running at a glance.
What is Docker?
- Docker is a platform that allows you to run applications inside lightweight, isolated environments called containers. Each container includes everything an application needs to work, making it easy to run the same software reliably on different computers.
- Containers are similar to virtual machines, but they share key components with the host operating system. Containers use the host system’s kernel, while virtual machines run their own guest operating systems with separate kernels, making them more independent but also more resource-intensive.
What Do I Need to Know?
- If you are entirely unfamiliar with Docker or have not used the Docker CLI before, here is this series on the Docker CLI that will help.
Resources Needed:
- This lab was created using
Ubuntu 24.04
- A default Ubuntu machine anywhere in the galaxy should work here.
- Note: The IP Address of my machine is
192.168.230.31

Install Docker and the docker-compose-plugin
- Set up Docker’s apt repository
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL <https://download.docker.com/linux/ubuntu/gpg> -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: <https://download.docker.com/linux/ubuntu>
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
apt install the needed Docker components
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
The command docker --help should reflect output similar to the screenshot below.