Home Lab Series Part 3: Docker & Portainer (The Engine)

By The Maker Team December 05, 2025
Home Lab Series Part 3: Docker & Portainer (The Engine)
In Part 3 of the Home Lab Series:
  • The Concept: Why "Containers" are better than installing apps.
  • The Installation: Setting up Docker Engine via command line.
  • Permissions: Fixing the annoying "Sudo" requirement.
  • The GUI: Installing Portainer to manage everything visually.
  • The Result: A server ready to host anything.

In Part 2, we set up our operating system (Ubuntu or Raspberry Pi OS). Now, we need to install the engine that drives the modern internet: Docker.

In the old days, if you wanted to run a website, you had to install PHP, manage dependencies, and pray an update didn't break everything. With Docker, apps come in sealed "Containers" that include everything they need to run. They work instantly, every time.


Step 1: Accessing the Terminal

Whether you are on a Raspberry Pi or a Proxmox VM, you need to get to the Command Line (Terminal).

  • Proxmox Users: Click your VM, then click >_ Console.
  • Pi/Linux Users: Open your terminal or SSH into the box.

Step 2: Installing Docker

We will use the official installation script. It is the easiest way to ensure you get the latest version compatible with your specific hardware (Intel or ARM/Pi).

Run the following command to download and run the script:

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

The screen will scroll text for about 2 minutes. Once it finishes, verify it works by checking the version:

sudo docker --version

Step 3: Fixing Permissions (Crucial Step)

By default, Docker requires you to type sudo before every command. This is annoying and breaks some automation scripts. Let's give your user permission to control the engine.

Run these two commands:

sudo usermod -aG docker $USER
newgrp docker

Now, test it by running the famous "Hello World" container without sudo:

docker run hello-world

If you see a message saying "Hello from Docker!", you are successful.


Step 4: Installing Portainer (The GUI)

Command lines are powerful, but sometimes you just want to click buttons. Portainer is a web interface for Docker. Ironically, we install Portainer... using Docker.

First, create a "Volume" to save Portainer's data:

docker volume create portainer_data

Next, download and run the Portainer container:

docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest
What did I just type?
  • -d: Run in the background (Detached).
  • -p 9443:9443: Open port 9443 so we can access the website.
  • --restart=always: If the server crashes, start this app automatically on boot.
  • -v: Give Portainer access to the hard drive so it can save your settings.

Step 5: Accessing Your Dashboard

Open your web browser and go to your server's IP address using HTTPS and port 9443:

https://192.168.1.XX:9443

You will be asked to create an Admin password. Once you are in, click "Get Started" and select your local environment. You will see a dashboard showing "1 Container" (Portainer itself) and "1 Volume".


Conclusion

You now have a fully functional container engine with a professional management dashboard. The boring infrastructure work is done!

Coming Up in Part 4: The fun begins. We will install Pi-hole to block ads on your entire network and create a Homepage dashboard to organize your links.

Share Your Progress

Did you get the "Hello from Docker" message? If you are seeing a "Permission Denied" error, don't give up. Join Great Meets to find the "Home Lab Support" group. We have threads specifically for debugging Docker installation issues.


Get Help ?