How to Deploy Docker & Docker Compose on Contabo VPS (Production Ready)
Contabo High-Performance Cloud VPS
Massive 4 vCPU cores, 8GB RAM, and 32TB monthly traffic. Ideal for Linux developers.
The Advantage of Running Docker on Contabo Cloud VPS
Docker has revolutionized production software engineering by encapsulating applications and their dependencies into self-sufficient containers. Because Contabo provides immense RAM at rock-bottom prices (8GB RAM on VPS 1 up to 64GB RAM on VPS 5), it is the ultimate budget cloud provider for running containerized homelabs, web apps, Ghost blogs, Redis caches, and PostgreSQL databases.
Step 1: Removing Unofficial Old Packages
Ubuntu repositories often carry older forks under docker.io. Ensure your system starts with a clean slate:
sudo apt remove -y docker docker-engine docker.io containerd runc
Step 2: Installing Docker via Official Repository
Always install directly from Docker Inc.'s official upstream repository to receive the latest security patches:
# Install prerequisite certificates
sudo apt update
sudo apt install -y ca-certificates curl gnupg
# Add Docker's official GPG key
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Set up the stable repository
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Install Docker Engine, CLI, and Docker Compose plugin
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Step 3: Managing Docker as a Non-Root User
Avoid executing docker commands with sudo by adding your active user to the docker group:
sudo usermod -aG docker $USER
newgrp docker
# Verify installation without sudo
docker run --rm hello-world
Step 4: Critical Security Fix: Docker vs. UFW Firewall
Warning: By default, the Docker daemon modifies iptables directly, allowing exposed ports (e.g. -p 8080:8080) to bypass your UFW firewall completely! To fix this security vulnerability, configure Docker daemon log rotation and iptables handling.
Create or edit /etc/docker/daemon.json:
sudo nano /etc/docker/daemon.json
Paste the following production configuration:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "20m",
"max-file": "3"
},
"live-restore": true
}
Reload Docker to apply changes:
sudo systemctl restart docker
Step 5: Deploying a Multi-Container Stack with Docker Compose
Let us create a production-grade Nginx web application with automatic restarts:
mkdir -p ~/stacks/webapp && cd ~/stacks/webapp
nano docker-compose.yml
Add the following Docker Compose configuration:
services:
web:
image: nginx:alpine
container_name: production_nginx
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:ro
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost"]
interval: 30s
timeout: 5s
retries: 3
Create a sample web page:
mkdir html
echo "<h1>Docker Running on Contabo High-RAM VPS</h1>" > html/index.html
Launch the container in detached background mode:
docker compose up -d
Step 6: Setting Up Docker System Pruning & Log Rotation
Dangling container images and build caches can silently consume tens of gigabytes of disk space over time. Set up an automated weekly cron job to prune unused containers and build artifacts:
# Create maintenance cron
sudo crontab -e
# Add line: run docker prune every Sunday at 3 AM
0 3 * * 0 /usr/bin/docker system prune -af --volumes > /dev/null 2>&1
Step 7: Frequently Asked Questions (FAQ)
Can I run Portainer or Traefik with Docker on Contabo?
Yes! Contabo's full KVM virtualization supports Portainer CE, Traefik v3 reverse proxies, and Nginx Proxy Manager with automated SSL certificates.
How many Docker containers can I run on Contabo Cloud VPS 1?
With 4 vCPU cores and 8GB RAM, you can comfortably host 15 to 25 typical lightweight containers (such as Ghost, Redis, Vaultwarden, Postgres, and Nginx) without performance degradation.
Editorial Verdict: Pros & Cons
What We Love (Pros)
- Run containerized apps with zero conflicting system dependencies
- Contabo's high RAM (8GB-64GB) allows hosting dozens of containers simultaneously
- Instant rollback and repeatable infrastructure with docker-compose.yml files
Drawbacks (Cons)
- Docker bypasses standard UFW iptables rules by default unless explicitly configured
Deploy Your Contabo Cloud Server
Includes 4 vCPU Cores, 8GB RAM, 50GB NVMe SSD, and 32TB Outbound Traffic.
Written by Alex Vance
Cloud Infrastructure Architect
Alex and the ServerCraft engineering lab run routine benchmarks on over 25 web hosting providers, maintaining strict objectivity and reproducibility.
Recommended Next Reads
Hostinger vs Contabo VPS (2026): Real Benchmark Test & In-Depth Comparison
A comprehensive, benchmark-driven comparison between Hostinger and Contabo VPS. We tested Geekbench CPU scores, NVMe I/O, network latency, and hPanel vs CLI.
Hostinger Review (2026): Is It Truly the Best Web Hosting for the Price?
We stress-tested Hostinger's Premium and Cloud Startup plans across 180 days. Read our honest review covering uptime, LiteSpeed speed tests, and renewal fees.