Docker ti permette di eseguire database, app web e strumenti in container isolati, così installare qualcosa di nuovo non rovina mai il resto del server. Questa guida installa Docker Engine e Docker Compose su Ubuntu ed esegue un primo servizio reale.
1. Installa dal repository di Docker
sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Verifica l’installazione con sudo docker run hello-world.
2. Esegui Docker senza sudo
sudo usermod -aG docker $USER
newgrp docker
I membri del gruppo docker hanno di fatto poteri da root sulla macchina, quindi aggiungi solo utenti di cui ti fidi.
3. Il tuo primo file Compose
Crea una cartella e un file compose.yaml che esegue lo strumento di monitoraggio Uptime Kuma:
mkdir -p ~/kuma && cd ~/kuma
cat > compose.yaml <<'EOF'
services:
kuma:
image: louislam/uptime-kuma:1
restart: unless-stopped
ports:
- "127.0.0.1:3001:3001"
volumes:
- ./data:/app/data
EOF
docker compose up -d
Associare a 127.0.0.1 tiene la porta fuori da internet pubblico. Metti davanti un reverse proxy come Nginx o Caddy quando vuoi raggiungerlo dall’esterno.
Comandi di uso quotidiano
docker pselenca i container in esecuzione.docker compose logs -fsegue i log.docker compose pull && docker compose up -daggiorna alle immagini più recenti.docker system prunerimuove le immagini inutilizzate e i container fermi.
Un avviso di sicurezza sui firewall
Docker scrive le proprie regole iptables. Una porta pubblicata come "8080:80" può essere raggiungibile da internet anche se UFW dice che è bloccata. Pubblica solo ciò che deve essere pubblico, associa i servizi privati a 127.0.0.1 e testa dall’esterno con un port scanner.
Cosa eseguire dopo
Tra le app self-hosted più popolari ci sono Nextcloud, Vaultwarden, Gitea, Plausible, n8n e Jellyfin. Leggi la nostra guida a ospitare Nextcloud in autonomia per un esempio completo.