Distribuzione di servizi su Swarm
Distribuisca e ridimensioni applicazioni containerizzate come servizi nel cluster Swarm, gestendone il ciclo di vita.
Distribuzione di servizi su Swarm è una lezione DevOps Bootcamp 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 DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp 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.

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 \
nginxComprendere 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-appAumento 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=3Riduzione 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=1Aggiornamento 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-appRimozione 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-appQuiz 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!
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 DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp 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 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 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 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
- Introduzione a Docker Swarm
- Configurazione di un cluster Swarm
- Distribuzione di servizi su Swarm
- Scalabilità e rolling update in Swarm