Per aggiungere altri nodi al cluster si utilizza il comando docker swarm join, specificando il token e l’indirizzo del manager.
Un esempio:
docker swarm join \
--token SWMTKN-1-example \
192.168.1.10:2377
Il token effettivo viene generato dal cluster e deve essere recuperato attraverso gli appositi comandi Docker.
Per visualizzare i nodi del cluster:
docker node ls
A questo punto è possibile distribuire un servizio con:
docker service create \
--name web-app \
--replicas 3 \
-p 8080:80 \
nginx
Docker Swarm distribuirà tre repliche del servizio sui nodi disponibili, secondo le regole di scheduling.
I principali vantaggi di Docker Swarm
1. Semplicità di configurazione
L’inizializzazione di un cluster richiede pochi comandi e non necessita di un’architettura particolarmente complessa.
2. Integrazione con Docker Engine
Swarm è già integrato nell’ambiente Docker, rendendo più semplice il passaggio dalla gestione dei singoli container all’orchestrazione distribuita.
3. Utilizzo della Docker CLI
La gestione avviene attraverso gli stessi strumenti utilizzati per amministrare Docker.
4. Bilanciamento del carico integrato
Docker Swarm mette a disposizione un routing mesh che permette di distribuire le richieste tra le repliche dei servizi.
5. Alta disponibilità
La presenza di più manager consente di mantenere il controllo del cluster anche in caso di guasto di un nodo manager, purché rimanga disponibile la maggioranza richiesta dal consenso Raft.

