Docker & DevOps Fundamentals · Lezione

Distribuzione di servizi su Swarm

Distribuisca e ridimensioni applicazioni containerizzate come servizi nel cluster Swarm, gestendone il ciclo di vita.

Lezione 3 di 411 passaggi

Distribuzione di servizi su Swarm è 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.

Che cos'è un servizio Docker Swarm?

In Docker Swarm, un service è la definizione di come si desidera eseguire un'applicazione containerizzata nel cluster.

Anziché eseguire singoli container, definisce un servizio per comunicare a Swarm: "Voglio eseguire X istanze di questa immagine, su queste porte e con queste impostazioni."

Swarm garantisce quindi il mantenimento dello stato desiderato, riavviando automaticamente i container in caso di errore.

Distribuzione di servizi su Swarm — illustrazione 1

Servizi e container a confronto

Immagini di vederla in questo modo:

  • Un container è una singola istanza di un'applicazione.
  • Un service è un modello per eseguire uno o più container identici, chiamati task, nel proprio Swarm.

I servizi garantiscono alta disponibilità e scalabilità distribuendo i task e gestendo automaticamente gli errori.

Distribuzione del primo servizio

Il comando docker service create consente di distribuire le applicazioni come servizi nel cluster Swarm. Creiamo un semplice server web Nginx.

Provi a eseguire questo esempio:

docker service create \
  --name my-web-app \
  -p 80:80 \
  --replicas 1 \
  nginx

Comprendere la creazione di un servizio

Analizziamo il comando appena utilizzato:

  • --name my-web-app: assegna al servizio un nome facilmente memorizzabile.
  • -p 80:80: associa la porta 80 sui nodi Swarm alla porta 80 all'interno del container.
  • --replicas 1: indica a Swarm di mantenere in esecuzione una singola istanza, o task, del servizio.
  • nginx: specifica l'immagine Docker da utilizzare per i task del servizio.

Ispezione dei servizi

Dopo aver creato un servizio, vorrà verificarne lo stato e visualizzare i task in esecuzione. Utilizzi questi comandi:

  • docker service ls: elenca tutti i servizi dello Swarm.
  • docker service ps <service_name>: mostra i singoli task, ovvero i container, associati a un servizio.
docker service ls
docker service ps my-web-app

Aumento della scala del servizio

Uno dei principali vantaggi di Docker Swarm è la facilità di scalabilità. Può aumentare il numero di istanze, o repliche, in esecuzione del servizio con un solo comando.

Aumentiamo a tre repliche il servizio my-web-app:

docker service scale my-web-app=3

Riduzione della scala del servizio

Con la stessa facilità, può ridurre la scala del servizio per diminuire l'utilizzo delle risorse o gestire il traffico. Swarm arresterà gradualmente i container in eccesso mantenendo in esecuzione quelli rimanenti.

Riduciamo nuovamente a una replica il servizio my-web-app:

docker service scale my-web-app=1

Aggiornamento di un servizio

Quando deve distribuire una nuova versione dell'applicazione o modificare le impostazioni del servizio, docker service update esegue un rolling update. Swarm aggiorna i task uno alla volta, assicurando che l'applicazione rimanga disponibile.

Aggiorniamo il servizio Nginx a una versione specifica:

docker service update --image nginx:1.25 my-web-app

Rimozione di un servizio

Quando un servizio non è più necessario, può rimuoverlo dallo Swarm. Questa operazione arresterà tutti i task associati ed eliminerà la definizione del servizio dal cluster.

Per rimuovere il servizio dell'app web di esempio:

docker service rm my-web-app

Quiz sulla gestione dei servizi

Ha un servizio denominato my-backend in esecuzione con 3 repliche e che utilizza l'immagine my-backend:v1. Deve aggiornarlo affinché utilizzi la nuova immagine my-backend:v2 e aumentare inoltre il numero di repliche a 5.

Riepilogo: servizi Swarm

Ottimo lavoro! Ha appreso gli elementi essenziali per distribuire e gestire le applicazioni come servizi in Docker Swarm.

  • I servizi definiscono lo stato desiderato delle applicazioni containerizzate.
  • Ha imparato a creare servizi utilizzando docker service create.
  • Abbiamo trattato l'ispezione, la scalabilità (docker service scale) e l'aggiornamento (docker service update) dei servizi.
  • Infine, può rimuovere i servizi con docker service rm.

I servizi sono fondamentali per creare applicazioni scalabili e resilienti in un cluster Swarm!

Gratis per iniziare

Impara Docker & DevOps Fundamentals con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
12
Lezioni
48

Domande Frequenti

La lezione «Distribuzione di servizi su Swarm» è gratuita?

Sì — il testo completo di «Distribuzione di servizi su Swarm» è 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 servizi su Swarm»?

Distribuisca e ridimensioni applicazioni containerizzate come servizi nel cluster Swarm, gestendone il ciclo di vita. 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 servizi su Swarm»?

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

  1. Introduzione a Docker Swarm
  2. Configurazione di un cluster Swarm
  3. Distribuzione di servizi su Swarm
  4. Scalabilità e rolling update in Swarm
← Torna a Docker & DevOps Fundamentals