Docker Compose
Gestire stack multi-container: up/down, aggiornamenti, log, override e debug. Ogni comando è verificato e copiabile; in chat basta descrivere cosa vuoi fare.
17 comandi in questa pagina
- Come tiro su e giù uno stack Compose?
- Come forzo la ricreazione (e la rebuild) dei servizi?
- Come riavvio un solo servizio dello stack?
- Come aggiorno le immagini di uno stack Compose?
- Come vedo i log di uno stack (o di un servizio)?
- Come vedo lo stato dei servizi dello stack?
- Come valido un compose file (ed env risolte)?
- Come tengo modifiche locali senza toccare il compose principale?
- Come trasformo un docker run in un compose?
- Come installo Paperless-ngx?
- Come avvio Zabbix con Docker Compose?
- Come installo Appwrite in self-hosting?
- Come installo Plausible self-hosted?
- Come avvio l'hub Beszel?
- Come installo Cosmos Server?
- Come installo Nginx Proxy Manager?
- Come avvio Traefik con Docker?
# Come tiro su e giù uno stack Compose?
docker compose up -d
docker compose down
down NON tocca i volumi; down -v li cancella: differenza da sapere a memoria.
Approfondisci: Cos'è Docker Compose?Qual è la differenza strutturale tra named volumes Docker persistenti e bind mounts per l'accesso ai file residenti sul filesystem host?Come si aggiornano automaticamente i container (Watchtower e alternative)?
# Come forzo la ricreazione (e la rebuild) dei servizi?
docker compose up -d --force-recreate --build
--build ricompila le immagini locali; --force-recreate ricrea anche senza modifiche.
Approfondisci: Cos'è Docker Compose?
# Come riavvio un solo servizio dello stack?
docker compose restart <servizio>
# con nuova immagine o config: docker compose up -d <servizio>
restart non ricarica immagini né variabili: per quelle serve up -d sul servizio.
Approfondisci: Cos'è Docker Compose?
# Come aggiorno le immagini di uno stack Compose?
docker compose pull && docker compose up -d
Ricrea solo i servizi con immagine nuova; per l'automatico c'è Watchtower; conoscendone i rischi.
Approfondisci: Come si aggiornano automaticamente i container (Watchtower e alternative)?Cos'è Docker Compose?
# Come vedo i log di uno stack (o di un servizio)?
docker compose logs -f --tail 100 [servizio]
Senza nome del servizio aggrega tutto lo stack, con i prefissi colorati.
Approfondisci: Come si configura la rotazione automatica dei file di log di Docker per prevenire la saturazione imprevista dello spazio su disco?
# Come vedo lo stato dei servizi dello stack?
docker compose ps
Mostra anche health e porte pubblicate: la fotografia dello stack in una riga per servizio.
Approfondisci: Cos'è Docker Compose?
# Come valido un compose file (ed env risolte)?
docker compose config
Stampa il file finale: variabili interpolate e override applicati: il debug di .env parte da qui.
Approfondisci: Cos'è Docker Compose?
# Come tengo modifiche locali senza toccare il compose principale?
# compose.override.yml viene fuso in automatico con compose.yml
docker compose config # verifica il risultato della fusione
L'override è il posto per porte di debug e bind mount locali: il file principale resta pulito e committabile.
Approfondisci: Cos'è Docker Compose?
# Come trasformo un docker run in un compose?
# ogni flag ha il suo campo YAML: -p->ports, -v->volumes, -e->environment, --restart->restart
# scorciatoia: https://composerize.com (incolli il docker run, esce il compose)
Vale sempre la pena: il compose è documentazione eseguibile, il docker run lungo un rigo no.
Approfondisci: Cos'è Docker Compose?
# Come installo Paperless-ngx?
bash -c "$(curl --location --silent --show-error https://raw.githubusercontent.com/paperless-ngx/paperless-ngx/main/install-paperless-ngx.sh)"
Lo script ufficiale chiede backend DB e cartelle, poi docker compose up -d. La UI è sulla 8000.
Approfondisci: Cos'è Paperless-ngx e a cosa serve?Come si fa un backup con la regola 3-2-1?
# Come avvio Zabbix con Docker Compose?
git clone https://github.com/zabbix/zabbix-docker.git && cd zabbix-docker
docker compose -f ./compose.yaml up -d
Repo ufficiale: compose.yaml per MySQL, compose_pgsql.yaml per PostgreSQL. Fai checkout del tag della versione prima dell'up.
Approfondisci: Cos'è Zabbix e quando ha senso?Come si monitora l'hardware del homelab (Prometheus, Grafana)?
# Come installo Appwrite in self-hosting?
docker run -it --rm -p 20080:20080 -v /var/run/docker.sock:/var/run/docker.sock -v "$(pwd)"/appwrite:/usr/src/code/appwrite:rw --entrypoint="install" appwrite/appwrite:<versione>
Sostituisci <versione> col tag dalla doc (mai latest in prod). Il wizard su :20080 genera compose + .env.
Approfondisci: Cos'è Appwrite e a cosa serve?Cos'è Docker Compose?
# Come installo Plausible self-hosted?
git clone https://github.com/plausible/community-edition plausible-ce && cd plausible-ce
docker compose up -d
Prima dell'up scrivi .env con BASE_URL e SECRET_KEY_BASE (64+ byte). UI sulla 8000.
Approfondisci: Cos'è Plausible e a cosa serve?GDPR: cosa serve davvero a un sito web (cookie e privacy policy)?
# Come avvio l'hub Beszel?
services:
beszel:
image: henrygd/beszel
container_name: beszel
restart: unless-stopped
environment:
- APP_URL=http://localhost:8090
ports:
- "8090:8090"
volumes:
- ./beszel_data:/beszel_data
# poi: docker compose up -d
Hub minimo ufficiale: UI sulla 8090. Gli agent si aggiungono dalla UI con chiave e token.
Approfondisci: Cos'è Beszel e a cosa serve?Cos'è Glances e a cosa serve?
# Come installo Cosmos Server?
curl -fsSL https://cosmos-cloud.io/get.sh | sudo -E bash -s
Vuole 80/443 libere e il socket Docker. Config in /config: includila nel backup.
Approfondisci: Cos'è Cosmos Server e a cosa serve?Cos'è CasaOS e a cosa serve?
# Come installo Nginx Proxy Manager?
services:
npm:
image: jc21/nginx-proxy-manager:latest # la doc usa latest: pinna una versione in prod
restart: unless-stopped
ports:
- "80:80"
- "81:81"
- "443:443"
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
# poi: docker compose up -d
Pannello sulla 81, al primo accesso crei l'admin. SQLite integrato di default.
Approfondisci: Cos'è Nginx Proxy Manager e a cosa serve?Nginx, Caddy o Traefik: quale scegliere?
# Come avvio Traefik con Docker?
services:
traefik:
image: traefik # la doc usa traefik:vX: pinna la major in prod
command:
- --providers.docker=true
- --entrypoints.web.address=:80
ports:
- "80:80"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
# poi: docker compose up -d
Provider Docker via socket. La dashboard 8080 con --api.insecure solo in laboratorio.
Approfondisci: Cos'è Traefik e a cosa serve?Nginx, Caddy o Traefik: quale scegliere?