🚀 How to Install Docker and Docker Compose on a Raspberry Pi (2025 Guide)
Docker turns your Raspberry Pi into a powerful containerized system for projects, home labs, or development. In this post, we'll walk through installing both Docker and Docker Compose (plugin-based).
📦 Why Use Docker on Raspberry Pi?
Lightweight and perfect for ARM CPUs
Easy deployment of apps/services via containers
Great for IoT, home automation, and developer tooling
Use Docker Compose for multi-container setups
🧰 Prerequisites
Raspberry Pi with Raspberry Pi OS (Debian-based)
Access to terminal (SSH or local)
Internet connection
✅ Step 1: Install Docker (Official Script)
The easiest and safest way is to use Docker's official convenience script:
curl -fsSL https://get.docker.com | sh
This script:
Installs Docker Engine
Sets up systemd services
Works on ARM (Raspberry Pi) and Debian-based systems
Start and enable Docker:
sudo systemctl enable docker
sudo systemctl start docker
Verify installation:
docker --version
You should see output like:
Docker version 24.0.0, build xxxxx
👤 (Optional) Add Your User to the Docker Group
Avoid using sudo
every time:
sudo usermod -aG docker $USER
Then log out and log back in.
🔄 Step 2: Add Docker's APT Repository (for Compose plugin)
To install the Docker Compose plugin cleanly via APT:
Install prerequisites:
sudo apt update
sudo apt install ca-certificates curl gnupg lsb-release
Add Docker’s GPG key:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Set up the Docker repo:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
📦 Step 3: Install Docker Compose Plugin
sudo apt update
sudo apt install docker-compose-plugin
Check version:
docker compose version
Note: The modern command is docker compose
(with a space), not docker-compose
.
🧪 Step 4: Test with a Simple Compose File
Create a test directory:
mkdir hello-docker && cd hello-docker
Create docker-compose.yml
:
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
Run it:
docker compose up -d
Now visit http://<raspberry_pi_ip>:8080
in your browser — you should see the Nginx welcome page!
🎉 You're Done!
You've successfully installed Docker and Docker Compose on your Raspberry Pi. You can now run containers, deploy apps, and build awesome projects.
💡 Pro Tips
Use
docker compose logs -f
to follow logsUse
docker compose down
to stop and clean upCombine with Portainer for a visual UI
Worked very well! Thank you very much.