0Pricing
DevOps Bootcamp · Lezione

Scrittura di un file Compose

Impari la sintassi YAML di `docker-compose.yml` per definire servizi, reti e volumi.

Scrittura di un file Compose è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.

File Compose: il progetto

Benvenuto nella scrittura dei file Docker Compose! Il file docker-compose.yml è il progetto per definire ed eseguire applicazioni Docker composte da più container.

Usa la sintassi YAML per configurare in un unico file i servizi, le reti e i volumi dell'applicazione.

Scrittura di un file Compose — illustrazione 1

YAML: un rapido ripasso

I file Docker Compose sono scritti in YAML (YAML Ain't Markup Language). È uno standard di serializzazione dei dati intuitivo per le persone.

  • Coppie chiave-valore: key: value
  • Elenchi: gli elementi iniziano con un trattino (- item)
  • Indentazione: è fondamentale per definire struttura e gerarchia. Usi gli spazi, non i tab!

La chiave `version`

Ogni file docker-compose.yml inizia con una chiave version. Questa specifica la versione del formato del file Compose e aiuta Docker Compose a interpretare correttamente il file.

Per la maggior parte delle applicazioni moderne, è consigliata la versione '3.8' o una versione '3.x' simile.

version: '3.8'

Definire `services`

La sezione services è il punto in cui definisce i singoli container (servizi) che compongono l'applicazione. Ogni servizio rappresenta un componente, ad esempio un server web o un database.

All'interno di services, elenca ogni servizio usando un nome a sua scelta.

version: '3.8'
services:
  web:
    # Service configuration goes here
  database:
    # Another service's configuration

`image` e `ports` del servizio

All'interno della definizione di un servizio, image specifica quale immagine Docker utilizzare (ad esempio nginx:latest). La chiave ports associa le porte del container alle porte dell'host, consentendo l'accesso esterno.

  • "80:80" associa la porta 80 dell'host alla porta 80 del container.
version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

`volumes` del servizio

La chiave volumes all'interno di un servizio consente di montare nel container percorsi del computer host oppure di usare volumi con nome per la memorizzazione persistente.

Questo esempio monta la directory locale ./app in /usr/src/app all'interno del container.

version: '3.8'
services:
  app:
    image: my-node-app
    volumes:
      - ./app:/usr/src/app

Variabili `environment` del servizio

Utilizzate la chiave environment per passare le variabili d'ambiente ai container del servizio. È fondamentale per le configurazioni che possono cambiare tra un ambiente e l'altro, ad esempio le stringhe di connessione al database.

Le variabili possono essere elencate come coppie chiave-valore oppure in formato elenco.

version: '3.8'
services:
  backend:
    image: my-api
    environment:
      - DATABASE_URL=postgres://user:pass@host:5432/db
      - NODE_ENV=development

`networks` e `volumes` di primo livello

Oltre a definirli all'interno dei servizi, è possibile dichiarare anche volumi denominati e reti personalizzati al primo livello del file docker-compose.yml.

In questo modo è possibile organizzare e riutilizzare meglio le definizioni per la persistenza dei dati e la comunicazione tra container.

version: '3.8'
services:
  # ... service definitions ...

networks:
  my_app_network:
    # custom network configuration

volumes:
  db_data:
    # named volume configuration

Unire tutti gli elementi

Ecco un piccolo esempio che combina ciò che abbiamo imparato. Definisce un servizio web e un servizio database, utilizzando un'immagine, delle porte e un volume denominato.

Notate come l'indentazione crei la struttura.

version: '3.8'
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - web_content:/usr/share/nginx/html
  db:
    image: postgres:13
    environment:
      - POSTGRES_DB=mydb
      - POSTGRES_USER=user
      - POSTGRES_PASSWORD=secret

volumes:
  web_content:
  db_data:

Verifica del file Compose

Quale dei seguenti frammenti YAML definisce correttamente un servizio Docker Compose denominato 'api' che utilizza l'immagine 'myapi:1.0' ed espone la porta 3000 del container sulla porta 8080 dell'host?

Riepilogo: elementi essenziali del file Compose

Ottimo lavoro! Avete imparato i fondamenti della scrittura di un file docker-compose.yml.

  • Inizia con una version.
  • services definisce i componenti dell'applicazione.
  • Ogni servizio utilizza un'image, può esporre delle ports, utilizzare volumes per la persistenza e impostare variabili environment.
  • Le networks e i volumes di primo livello consentono una configurazione avanzata.

Conoscere bene questa struttura YAML è fondamentale per orchestrare applicazioni composte da più container!

Domande Frequenti

La lezione «Scrittura di un file Compose» è gratuita?

Sì — il testo completo di «Scrittura di un file Compose» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.

Cosa imparerò in «Scrittura di un file Compose»?

Impari la sintassi YAML di `docker-compose.yml` per definire servizi, reti e volumi. Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare DevOps Bootcamp?

Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Scrittura di un file Compose»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?

Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Che cos’è Docker Compose?
  2. Scrittura di un file Compose
  3. Distribuzione di app multi-servizio
  4. Variabili d'ambiente e file .env
← Torna a DevOps Bootcamp