Sobes.tech
Junior

Cos'è Docker Compose?

sobes.tech AI

Risposta dell'AI

Strumento per definire e avviare applicazioni Docker multi-container. Permette di descrivere servizi, reti e volumi in un singolo file YAML e di avviarli con un solo comando.

Funzioni principali:

  • Definizione di più servizi in un file.
  • Creazione e avvio di tutti i servizi con un comando.
  • Gestione del ciclo di vita dell'applicazione (avvio, arresto, riavvio, scalabilità).
  • Interazione di rete tra i container.
  • Applicazione della configurazione in tempo reale.

Esempio di file docker-compose.yml:

version: '3.8' # Versione del formato del file

services:
  web: # Nome del servizio
    image: nginx:latest # Immagine utilizzata
    ports:
      - "80:80" # Redirect delle porte
    volumes:
      - ./html:/usr/share/nginx/html # Mappatura dei volumi

  app: # Nome di un altro servizio
    build: . # Costruzione dell'immagine dal Dockerfile nella directory corrente
    ports:
      - "5000:5000"
    depends_on: # Dipendenza da un altro servizio
      - db

  db: # Nome del servizio di database
    image: postgres:latest
    environment: # Variabili di ambiente
      POSTGRES_DB: mydatabase
      POSTGRES_USER: myuser
      POSTGRES_PASSWORD: mypassword

volumes: # Volumi definiti
  data: # Volume nominato per i dati

Comandi:

  • docker-compose up: Avvia i container.
  • docker-compose down: Ferma e rimuove i container.
  • docker-compose build: Costruisce le immagini.
  • docker-compose ps: Mostra lo stato dei container in esecuzione.

Vantaggi:

  • Semplifica la gestione di applicazioni multi-container complesse.
  • Garantisce la riproducibilità del deployment.
  • Facilita lo sviluppo e il testing locale.