Docker ti permette di far girare siti web, database, bot e pannelli in container isolati, ognuno con le sue dipendenze e senza sporcare il sistema.
Installarlo
Lo script ufficiale installa Docker e il plugin di Compose su Ubuntu e Debian:
curl -fsSL https://get.docker.com | sh
Verifica che funzioni:
docker run --rm hello-world
docker compose version
Un esempio con Compose
Crea una cartella con un docker-compose.yml, per esempio per un sito semplice:
services:
web:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html:ro
restart: unless-stopped
docker compose up -d # avviare in background
docker compose logs -f # vedere i log
docker compose down # fermarlo
restart: unless-stopped fa sì che riparta da solo dopo il riavvio del VPS.
Attenzione: Docker scavalca ufw
Le porte che pubblichi con ports: (o -p) vengono aperte su Internet anche se ufw dice che sono chiuse, perché Docker scrive le proprie regole nel firewall. È la causa di molti database esposti per errore.
Se un servizio lo usano solo altri container o il server stesso, pubblicalo solo in locale:
ports:
- "127.0.0.1:3306:3306"
E tra container dello stesso docker-compose.yml non serve pubblicare nulla: si raggiungono tramite il nome del servizio.
Pulizia
Le immagini vecchie si accumulano e riempiono il disco. Ogni tanto:
docker system prune
Elimina i container fermi, le reti inutilizzate e le immagini senza tag. Prima ti chiede conferma.