Deployare servizi con Docker
Docker semplifica il deploy di applicazioni: ogni servizio gira in un container isolato con le sue dipendenze.
1. Installazione
curl -fsSL https://get.docker.com | sh
usermod -aG docker $USER
2. Docker Compose
# docker-compose.yml
version: "3"
services:
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./html:/usr/share/nginx/html
restart: unless-stopped
mariadb:
image: mariadb:10
environment:
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_pw
volumes:
- db_data:/var/lib/mysql
restart: unless-stopped
volumes:
db_data:
3. Comandi essenziali
docker compose up -d # avviare
docker compose down # fermare
docker compose logs -f # log in tempo reale
docker compose ps # stato container
docker compose pull # aggiornare immagini
4. Networking Docker
# Creare rete dedicata
docker network create homelab
# I container sulla stessa rete si raggiungono per nome
5. Volumi e persistenza
# I dati nei volumi sopravvivono al restart
docker volume ls
docker volume inspect db_data
6. Servizi utili per homelab
- Portainer: gestione Docker via web UI
- Traefik: reverse proxy automatico per container
- Watchtower: aggiornamento automatico container
- Uptime Kuma: monitoraggio uptime servizi