Cos’è Docker Compose e perché usarlo

Buongiorno a tutti e benvenuti in nuovo articolo di tooldech, in questo articolo parleremo di uno strumento utile quando si usa Docker, ti sarai accorto che avviare più container con docker run può diventare rapidamente complicato. Immagina di dover far partire un’applicazione web con un database, un server cache e magari un reverse proxy: tanti comandi, porte da ricordare, reti da creare…

Ecco dove entra in gioco Docker Compose: uno strumento che ti permette di definire e avviare più container Docker tramite un unico file YAML. È perfetto per creare ambienti di sviluppo replicabili, leggibili e facili da mantenere.


Come funziona

Docker Compose lavora attraverso un file chiamato docker-compose.yml, dove si definiscono:

  • i servizi (es. app, database…),
  • le reti che li collegano,
  • eventuali volumi persistenti,
  • e tutte le configurazioni necessarie per avviare l’intero stack.

Una volta pronto il file, basta un comando per avviare tutto:

docker-compose up

Prerequisiti

Prima di iniziare, assicurati di avere installato

Oppure guarda il mio articolo sull’installazione di docker.

Verifica tutto con:

docker --version
docker compose version

Creiamo il nostro primo ambiente locale

In questa guida creeremo un’applicazione demo composta da:

  • un server web (basato su Nginx)
  • un database PostgreSQL.

1. Struttura del progetto

Crea una cartella per il progetto:

mkdir mio-progetto-docker
cd mio-progetto-docker

Al suo interno, creeremo due file:

  • docker-compose.yml → definisce i servizi
  • index.html → un file HTML di test per il web server

2. Scriviamo il file docker-compose.yml

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8081:80"
    volumes:
      - ./index.html:/usr/share/nginx/html/index.html:ro
    depends_on:
      - db

  db:
    image: postgres:13
    environment:
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password
      POSTGRES_DB: miaapp
    volumes:
      - db_data:/var/lib/postgresql/data

volumes:
  db_data:

Spiegazione dettagliata:

  • version: ‘3.8’: versione del formato Compose.
  • services: definisce i container.
  • web:
    • usa l’immagine ufficiale di nginx.
    • espone la porta 8081 sul tuo PC verso la 80 del container.
    • monta index.html dentro la directory predefinita di Nginx.
    • dipende dal database (depends_on).
  • db:
    • usa l’immagine ufficiale postgres:13.
    • setta variabili di ambiente per utente, password e database iniziale.
    • crea un volume persistente chiamato db_data.
  • volumes: definizione dei volumi nominati (persistenti).

Se vuoi scaricare il file docker-compose per partire già avvantaggiato ecco qui:


3. Creiamo il file index.html

Nel progetto, crea il file html:


4. Avviamo l’ambiente

Avvia tutto con:

docker-compose up

Vedrai i log dei container partire. Se è la prima volta, Docker scaricherà le immagini necessarie.


5. Prova che funziona

Apri il browser e vai su:

http://localhost:8081

Vedrai la scritta:

Nel frattempo, il container PostgreSQL sarà attivo, pronto per accettare connessioni dalla tua app.


Comandi utili per Docker Compose

  • Avvio in background:
docker-compose up -d
  • Stop dei servizi:
docker-compose down
  • Verifica lo stato:
docker-compose ps
  • Log dei container:
docker-compose logs -f

Conclusione

Hai appena creato il tuo primo ambiente di sviluppo locale con Docker Compose: semplice, leggibile, potente.

Questa è la base perfetta per costruire applicazioni più complesse, integrando backend, frontend, database, queue, proxy e altro. In un solo file, gestisci tutto il tuo stack!

Siamo già arrivati alla fine di questo articolo interessante e semplice di Docker Compose, grazie per la lettura e al prossimo articolo inisieme, a presto !

Seguici sui nostri social!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

it_ITItalian