Che cos’è Docker Compose e come usarlo
Mar 18, 2026
/
Faradilla A.
/
6 min di lettura
Docker Compose è uno strumento che ti permette di definire ed eseguire applicazioni multi-container in modo semplice e rapido. Gli sviluppatori lo usano per gestire servizi interconnessi, ad esempio combinando un’applicazione front-end con un database, così da gestire facilmente l’intero stack applicativo.
Con un unico file YAML, Docker Compose ti permette di definire tutta l’infrastruttura necessaria per creare un’applicazione, inclusi l’immagine Docker da usare, la configurazione della rete interna e i volumi persistenti da montare. Una volta definita la configurazione, puoi avviare tutti i container eseguendo il comando docker compose up.
Durante il ciclo di vita del progetto, puoi gestire i container con altri comandi di Docker Compose. Ad esempio, docker compose down arresta e rimuove tutti i servizi, mentre docker compose ps mostra i container attualmente in esecuzione definiti nel file YAML.
Per usare Docker Compose, devi avere Docker Engine e Docker CLI installati. Successivamente, installa il plugin tramite il gestore di pacchetti del tuo sistema o Homebrew. Se utilizzi Docker Desktop, questo strumento di orchestrazione è già incluso.
Continua a leggere per scoprire meglio cos’è Docker Compose e come usarlo per gestire applicazioni multi-container.
Cos’è Docker Compose
Docker Compose è uno strumento che ti permette di definire ed eseguire facilmente applicazioni Docker composte da più container. Il suo obiettivo principale è semplificare, centralizzare e unificare la gestione di più servizi.
Docker Compose si basa su un unico file YAML in cui definisci tutti gli aspetti dei container della tua applicazione: quale immagine deve usare ogni servizio, come comunicano tra loro e dove vengono salvati i dati persistenti. Questa configurazione ti permette di creare e gestire i container in modo coerente.
Come funziona Docker Compose
Docker Compose funziona definendo tre componenti principali delle applicazioni multi-container all’interno del file YAML: servizi, reti e volumi.
Quando avvii un’app a partire dal file YAML, Docker Compose scarica o crea l’immagine necessaria per avviare il servizio, ovvero il relativo container.
Successivamente, crea una rete interna che consente ai servizi di comunicare tra loro e inizializza i volumi per archiviare i dati persistenti condivisi tra i container. Inoltre, configura le variabili d’ambiente per ogni servizio, così puoi passare dati senza doverli inserire direttamente nell’immagine.
Tutte le configurazioni — inclusa l’immagine da usare, la configurazione della rete, il punto in cui montare i volumi persistenti e le variabili d’ambiente — sono definite nel file YAML. Questo significa che puoi creare e gestire tutti i container della tua applicazione partendo da un unico file.
Esempio di file YAML di Docker Compose
Ecco un esempio reale di file YAML di Docker Compose che definisce un progetto composto da due servizi interconnessi: una semplice applicazione web e un’istanza di cache Redis.
Per capire meglio la configurazione, consulta i commenti per capire cosa fa ogni riga.
services:
web: # Servizio per l'applicazione web
build: . # Crea l'immagine dal Dockerfile nella directory corrente
ports:
- "8000:5000" # Mappa la porta 8000 dell'host alla porta 5000 del container
depends_on:
- redis # Garantisce che 'redis' venga avviato prima di 'web'
volumes:
- ./:/app # Monta la directory corrente nel container in /app (bind mount)
environment:
REDIS_HOST: ${REDIS_HOST:-redis} # Imposta REDIS_HOST dall'ambiente o usa 'redis' come valore predefinito
redis: # Servizio per la cache Redis
image: redis:6 # Usa l'immagine ufficiale di Redis (versione 6)
expose:
- "6379" # Espone la porta 6379 agli altri servizi nella rete Docker
volumes:
- redis_data:/data # Salva i dati di Redis in un volume con nome
volumes:
redis_data: {} # Definisce il volume con nome per la persistenza dei dati di RedisTieni presente che, in base alla tua applicazione, ai servizi e alla configurazione, il contenuto del file YAML può variare.
Come installare Docker Compose
I passaggi per installare Docker Compose variano in base al tipo di applicazione Docker e al tuo sistema operativo.
Se utilizzi Docker Desktop, Compose è già preconfigurato. Se invece usi Docker CLI, puoi installare il plugin Compose dal repository ufficiale oppure scaricarlo manualmente. In questo caso, vediamo come installarlo tramite il repository ufficiale, così da semplificare gli aggiornamenti futuri.
Prima di procedere, verifica di aver configurato Docker Engine e Docker CLI. Se non l’hai ancora fatto, consulta la nostra guida all’installazione di Docker su Ubuntu per conoscere tutti i passaggi.
Dopo aver configurato Docker Engine e Docker CLI, installa Compose in base al tuo sistema operativo. Su Linux, puoi farlo tramite il gestore di pacchetti. Ad esempio, sulle distribuzioni basate su Debian esegui:
sudo apt update
sudo apt install docker-compose-plugin
Se utilizzi un sistema non basato su Debian, sostituisci apt con il gestore di pacchetti corrispondente. Ad esempio, usa dnf per le distribuzioni basate su RHEL.
Se utilizzi macOS, installa Docker Compose tramite Homebrew con il seguente comando:
brew install docker-compose
Sia su Linux che su macOS, puoi verificare che Docker Compose sia installato correttamente eseguendo:
docker compose version
Se la configurazione è corretta, vedrai il numero di versione nel terminale.

Come usare Docker Compose
Con Docker Compose puoi definire la configurazione della tua applicazione, avviare lo stack e gestirne l’intero ciclo di vita con un unico strumento.
Per capire meglio come usarlo in uno scenario reale, supponiamo di voler eseguire WordPress su Ubuntu con Docker. Ecco come funziona il flusso di lavoro.
- Crea un file di configurazione YAML o YML usando un editor di testo come nano. Puoi scegliere qualsiasi nome, ma è consigliabile usare quello predefinito docker-compose.yml o compose.yaml per semplificare la gestione.
- All’interno del file YAML, definisci le immagini Docker di WordPress e MySQL insieme alle relative impostazioni, come configurazione della rete, volumi persistenti e dipendenze.
- Avvia tutti i servizi WordPress e MySQL usando la configurazione definita nel file YAML eseguendo:
docker compose up
- Durante lo sviluppo del progetto, dovrai arrestare e rimuovere i container per aggiornamenti o manutenzione. Per farlo, esegui:
docker compose down
Puoi modificare il comportamento del comando docker compose usando dei flag. Ad esempio, se vuoi eseguire la build usando un file con un nome diverso da quello predefinito, aggiungi il flag -f o –file per specificare il file da usare:
docker compose -f your-compose-file.yaml up
Per impostazione predefinita, Docker Compose crea i container nella directory di lavoro corrente. Se vuoi distribuire l’applicazione in un’altra directory, aggiungi –project-directory e specifica il percorso:
docker compose --project-directory /full/deployment/path up
Esegui i container in background 📦
Docker Compose esegue automaticamente l’applicazione nella sessione principale del terminale. Se vuoi avviare il progetto in background, aggiungi il flag -d o --detach.
Puoi anche combinare più flag separandoli con una barra inversa (\). Ad esempio, usa questo comando per distribuire un’applicazione da un file YAML con un nome specifico in un’altra directory:
docker compose \ -f /path/to/my-docker-compose.yaml \ --project-directory /path/to \ up
Quando rimuovi i container, i dati rimangono intatti perché sono associati ai volumi persistenti. Se vuoi eliminare anche i volumi, aggiungi il flag –volumes:
docker compose down --volumes
Comandi principali di Docker Compose
Oltre a up e down, esistono altri comandi utili per gestire l’intero stack dell’applicazione:
- docker compose ps – mostra i container in esecuzione gestiti da Docker Compose. L’output include nome del container, immagine, comando, servizio, stato e porte.
- docker compose logs – raccoglie e mostra i log di tutti i servizi nello stack. Aggiungendo il flag -f, visualizzi i log in tempo reale.
- docker compose start – avvia container esistenti arrestati.
- docker compose stop – arresta i container in esecuzione senza rimuoverli.
- docker compose restart – riavvia immediatamente i container.
- docker compose build – forza la ricostruzione delle immagini che usano la direttiva build nel file YAML. Puoi aggiungere –no-cache per una build pulita.
- docker compose push – invia tutte le immagini create ai rispettivi registry remoti.
- docker compose pull – scarica tutte le immagini necessarie per creare lo stack senza avviare i container.
Differenza tra Docker e Docker Compose
Docker comprende diversi concetti, strumenti e componenti, ognuno con un ruolo specifico nell’ecosistema dei container. Conoscerli ti aiuta a usare la piattaforma in modo più efficiente ed efficace.
Docker Compose fa parte di questo ecosistema ed è spesso confuso con la Docker CLI. Entrambi sono strumenti a riga di comando, ma hanno funzioni diverse.
Ecco un confronto tra Docker Compose e Docker CLI:
| Aspetto | Docker CLI | Docker Compose |
| Utilizzo | Ideale per configurazioni con un singolo container | Progettato per applicazioni multi-container |
| Orchestrazione | Manuale, devi gestire ogni container singolarmente | Automatizzata, gestisci tutti i servizi da un unico file YAML |
| Configurazione | Definita nei comandi tramite flag | Definita nel file YAML |
| Riutilizzabilità e portabilità | Difficile condividere configurazioni complesse | Facile da versionare e riutilizzare |
| Sviluppo e test | Poco pratico per ambienti multi-servizio | Ideale per lo sviluppo locale |
| Produzione | Adatto a progetti semplici | Usato anche in produzione, ma spesso sostituito da Kubernetes o Docker Swarm su larga scala |
| Curva di apprendimento | Più semplice per iniziare | Leggermente più complessa, ma più adatta a progetti reali |
Qual è il prossimo passo dopo Docker Compose
Dopo aver imparato a usare Docker Compose, puoi gestire il tuo progetto multi-servizio in modo più semplice ed efficiente. In scenari reali, però, potresti dover lavorare direttamente sui singoli container, ad esempio per aggiungere un nuovo servizio o risolvere problemi specifici.
Per questo motivo, è importante imparare anche a creare un container Docker, così da lavorare con più sicurezza nell’intero ecosistema.
Tieni presente che Docker Compose e i container sono solo una parte della piattaforma. Man mano che il tuo progetto cresce, dovrai usare strumenti più avanzati. Ad esempio, puoi passare a Kubernetes o Docker Swarm per gestire più container in modo più affidabile.
Se vuoi distribuire un’applicazione containerizzata su un VPS di Hostinger, puoi usare la funzionalità Docker Compose Manager. Avrai a disposizione una dashboard integrata in hPanel per semplificare la distribuzione e la gestione delle applicazioni basate su Docker.

Tutti i contenuti dei tutorial presenti su questo sito web sono soggetti ai rigorosi standard editoriali e ai valori di Hostinger.