Capitolo 6 – Docker Compose

In questo capitolo vedremo:


6.1 Cos’è Docker Compose

Docker Compose è uno strumento che permette di definire e gestire applicazioni multi-container tramite un file YAML.

Con un solo comando è possibile:

È ideale per ambienti di sviluppo e piccole/medie infrastrutture.


6.2 Verifica installazione

Docker Compose è incluso come plugin nelle versioni recenti di Docker.

Verifica:

docker compose version

Se il comando risponde con una versione, Compose è correttamente installato.


6.3 Struttura base di docker-compose.yml

Esempio semplice con Nginx:

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"

Salvare il file come:

docker-compose.yml

6.4 Avviare un progetto Compose

Dalla directory dove si trova il file:

docker compose up -d

Parametri:

Verifica container attivi:

docker compose ps

6.5 Fermare e rimuovere i servizi

Fermare i container:

docker compose stop

Fermare e rimuovere container, reti e configurazioni:

docker compose down

Rimuovere anche i volumi:

docker compose down -v

6.6 Esempio applicazione multi-container (Web + Database)

Esempio con Nginx e MySQL:

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    depends_on:
      - db

  db:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: esempio
    volumes:
      - db_data:/var/lib/mysql

volumes:
  db_data:

In questo esempio:


6.7 Variabili d’ambiente con file .env

Creare un file .env nella stessa directory:

MYSQL_ROOT_PASSWORD=superpassword

Nel file docker-compose.yml:

environment:
  MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}

Compose caricherà automaticamente le variabili dal file .env.


6.8 Ricostruire i servizi

Se modifichi il Dockerfile:

docker compose up -d --build

Forzare la ricreazione dei container:

docker compose up -d --force-recreate

6.9 Visualizzare i log

Log di tutti i servizi:

docker compose logs

Seguire i log in tempo reale:

docker compose logs -f

Log di un singolo servizio:

docker compose logs web

6.10 Scalare un servizio

Esempio:

docker compose up -d --scale web=3

Questo avvia 3 istanze del servizio web.


Best Practice


Conclusione

Ora sai:

Nel prossimo capitolo vedremo come mettere in produzione un'applicazione Docker con reverse proxy e HTTPS.


Revision #1
Created 2026-02-27 16:40:04 UTC by Pe
Updated 2026-02-27 16:41:14 UTC by Pe