Mar 18, 2026
Faradilla A.
6min 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.
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.
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.
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.
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.

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.
docker compose up
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
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
Oltre a up e down, esistono altri comandi utili per gestire l’intero stack dell’applicazione:
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 |
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.