F FabGPT-FAQ

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?

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?

Chiedi in chat