Docker for Self-Hosting: A Beginner's Complete Guide

Docker is how modern self-hosting works. Here's what you need to know.

What is Docker?

Docker runs applications in isolated containers. Each container has everything it needs — no dependency conflicts.

Installing Docker

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

Key Commands

# Run a container
docker run -d --name myapp -p 8080:80 nginx

# List containers
docker ps

# View logs
docker logs myapp

# Stop/remove
docker stop myapp
docker rm myapp

Docker Compose

Define your setup in a YAML file:

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    restart: unless-stopped
    ports:
      - "3001:3001"
    volumes:
      - data:/app/data

volumes:
  data:

Run with: docker compose up -d

Tips

  • Always use restart: unless-stopped
  • Use named volumes for data
  • Keep compose files in version control

That's Docker basics. Now go deploy something!