Distribuzione di app multi-servizio
Distribuisca un’applicazione full-stack con database e servizio backend usando Docker Compose.
Distribuzione di app multi-servizio è una lezione Docker & DevOps Fundamentals gratuita su CoddyKit. Questa è la lezione 3 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 Docker & DevOps Fundamentals, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Docker & DevOps Fundamentals include 4 lezioni in totale.
Distribuire applicazioni multi-servizio
Benvenuti! In questa lezione imparerete a mettere online un'applicazione full-stack utilizzando Docker Compose.
Vedrete come definire più servizi, ad esempio un'applicazione web e un database, per poi distribuirli e gestirli insieme.

Il nostro esempio: Web e DB
Distribuiremo una semplice applicazione web che si connette a un database. Si tratta di una configurazione comune in molte applicazioni reali.
- Servizio web: un'applicazione Python Flask che visualizza una pagina web di base.
- Servizio database: un database PostgreSQL in cui memorizzare i dati.
Docker Compose semplifica l'orchestrazione di questi due servizi!
Creazione dell'immagine web
Il nostro servizio web ha bisogno di una propria immagine Docker. Ecco un Dockerfile semplificato che crea la nostra applicazione Python Flask.
Installa Flask e un connettore PostgreSQL, quindi esegue il nostro app.py.
FROM python:3.9-slim-buster
WORKDIR /app
COPY . /app
RUN pip install --no-cache-dir flask psycopg2-binary
EXPOSE 5000
CMD ["python", "app.py"]Il file `docker-compose.yml`
Questo file docker-compose.yml definisce i nostri due servizi: web e db. Notate come il servizio web venga creato dal nostro Dockerfile e si connetta al servizio db utilizzando variabili d'ambiente.
version: '3.8'
services:
web:
build: .
ports:
- "5000:5000"
environment:
DB_HOST: db
DB_NAME: mydatabase
DB_USER: user
DB_PASSWORD: password
depends_on:
- db
db:
image: postgres:13
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:Avvio dei servizi
Per avviare tutti i servizi definiti nel file docker-compose.yml, utilizzate il comando docker compose up.
Il flag -d esegue i container in modalità "detached", ovvero in background.
# This command starts your multi-service app
# and runs it in the background.
docker compose up -dVerifica dei container in esecuzione
Dopo aver eseguito docker compose up -d, è consigliabile verificare che tutti i servizi siano in esecuzione come previsto.
Il comando docker compose ps elenca i servizi, il loro stato e le porte.
# Check the status of your services
docker compose psConnessione all'applicazione
Quando i servizi sono in esecuzione, è possibile accedere all'applicazione web.
- Aprite il browser web.
- Visitate
http://localhost:5000.
Dovreste visualizzare un messaggio dell'applicazione Flask che conferma la connessione al database PostgreSQL!
Ridimensionamento dei servizi
Una delle funzionalità più potenti di Docker Compose è il ridimensionamento dei servizi. Se l'applicazione web deve gestire più traffico, è possibile aumentare facilmente il numero di istanze del servizio web.
Utilizzate il flag --scale con docker compose up.
# Scale the 'web' service to 3 instances
docker compose up --scale web=3 -dArresto e rimozione dei servizi
Quando avete terminato di utilizzare l'applicazione, potete arrestare e rimuovere tutti i servizi e le relative reti definiti nel file docker-compose.yml.
Il comando docker compose down esegue questa pulizia al posto vostro.
# Stop and remove all services
docker compose downVerifica rapida
Considerate il file docker-compose.yml che abbiamo utilizzato. Avete appena avviato l'applicazione con docker compose up -d.
Qual è il comando principale per arrestare e rimuovere tutti i servizi in esecuzione e le risorse associate?
Riepilogo e prossimi passi
Ottimo lavoro! Avete imparato a distribuire e gestire un'applicazione composta da più servizi utilizzando Docker Compose.
- Abbiamo definito i servizi nel file
docker-compose.yml. - Abbiamo utilizzato
docker compose up -dper avviare i servizi. - Abbiamo verificato lo stato con
docker compose ps. - Abbiamo ridimensionato i servizi e utilizzato
docker compose downper la pulizia.
Questa è una competenza fondamentale per lo sviluppo e i test in locale di applicazioni complesse!
Domande Frequenti
La lezione «Distribuzione di app multi-servizio» è gratuita?
Sì — il testo completo di «Distribuzione di app multi-servizio» è 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 Docker & DevOps Fundamentals, passa a CoddyKit PRO. Il corso Docker & DevOps Fundamentals include 4 lezioni in totale.
Cosa imparerò in «Distribuzione di app multi-servizio»?
Distribuisca un’applicazione full-stack con database e servizio backend usando Docker Compose. Eserciti Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals?
Non è richiesta alcuna esperienza precedente. Docker & DevOps Fundamentals su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Distribuzione di app multi-servizio»?
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 Docker & DevOps Fundamentals?
Sì. Ogni lezione Docker & DevOps Fundamentals 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
- Che cos’è Docker Compose?
- Scrittura di un file Compose
- Distribuzione di app multi-servizio
- Variabili d'ambiente e file .env