Docker Swarm · 8 min read · Oct 05, 2025
Come installare Docker Swarm su Ubuntu 22.04

Docker Swarm è un’orchestrazione di container costruita sopra Docker Engine. Ti consente di creare e distribuire un cluster di nodi Docker su più server. Docker Swarm semplifica la distribuzione delle tue applicazioni containerizzate in un servizio. Fornisce un modo semplice e facile per gestire e orchestrare i container.
Docker Swarm offre un alto livello di applicazioni disponibili. In Docker Swarm, puoi eseguire un’unica applicazione o servizio su più nodi, che sono chiamati ‘Worker Nodes’. E c’è anche un nodo chiamato “Swarm Manager”, che è la gestione centrale e l’orchestrazione di Docker Swarm.
In questo tutorial, ti mostreremo come installare il software Docker Swarm sui server Ubuntu 22.04 passo dopo passo.
Requisiti
Per completare questa guida, assicurati di avere i seguenti requisiti:
- 3 server Ubuntu 22.04 - Uno sarà utilizzato come Swarm Master/Manager e due server saranno utilizzati come Worker Nodes.
- Un utente non root con privilegi di amministratore sudo.
Configurazione dei sistemi
Prima di installare Docker e configurare Docker Swarm, devi preparare i tuoi sistemi completando i seguenti compiti:
- Aprire le porte per Docker Swarm: Devi aprire alcune porte utilizzate da Docker Swarm su tutti i tuoi server. Questo può essere realizzato tramite UFW (Uncomplicated Firewall).
- Aggiungere il repository Docker: Utilizzerai il repository ufficiale di Docker per installare Docker Engine su tutti i tuoi server.
Aprire le porte per Docker Swarm
Nella sezione seguente, aprirai la porta 22 per SSH, quindi le porte 2377, 7946 e 4789 per Docker Swarm tramite UFW (Uncomplicated Firewall) sullo Swarm Master/Manager e sui nodi Swarm. L’UFW è installato per impostazione predefinita, ma non è ancora stato avviato.
Prima di tutto, esegui il comando ufw qui sotto per aggiungere il profilo dell’applicazione OpenSSH e aprire la porta SSH predefinita 22. Quindi, avvia e abilita UFW.
sudo ufw allow OpenSSH
sudo ufw enableDigita y per procedere e dovresti ottenere l’output Firewall attivo e abilitato all’avvio del sistema.

Ora esegui il comando qui sotto per aprire le porte che saranno utilizzate dai servizi sulla tua distribuzione Swarm. In questo caso, assegnerai le porte tra 30000:35000 per i servizi.
sudo ufw allow 30000:35000/tcpSuccessivamente, esegui il seguente comando per aprire le porte per Docker Swarm.
for ports in 2377/tcp 7946/tcp 7946/udp 4789/udp
do
sudo ufw allow $ports
done
Infine, ricarica UFW e verifica lo stato di UFW eseguendo il comando qui sotto.
sudo ufw reload
sudo ufw statusDovresti vedere il profilo dell’applicazione OpenSSH e le porte per Docker Swarm, inclusi 2377, 7946 e 4789 abilitati su UFW.

Aggiungere il repository Docker
Dopo aver configurato l’UFW, devi aggiungere il repository ufficiale di Docker ai tuoi server. Utilizzerai il repository ufficiale di Docker per installare Docker Engine.
Esegui il comando qui sotto per installare alcuni pacchetti di base sui tuoi server Ubuntu.
sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release -y
Successivamente, esegui il comando qui sotto per aggiungere la chiave GPG e il repository di Docker ai tuoi sistemi.
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpgecho \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/nullInfine, aggiorna e aggiorna il tuo repository Ubuntu su ciascun server eseguendo il comando qui sotto.
sudo apt updateDovresti vedere il repository Docker che viene recuperato durante il processo.

Installazione di Docker Engine
Dopo aver preparato i tuoi sistemi Ubuntu, installerai Docker Engine su quei server.
Installa Docker Engine sui tuoi sistemi Ubuntu utilizzando il comando qui sotto. Inserisci y per confermare l’installazione.
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Una volta completata l’installazione, esegui il comando systemctl qui sotto per verificare il servizio docker e assicurarti che il servizio sia in esecuzione.
sudo systemctl is-enabled docker
sudo systemctl status dockerNell’output seguente, dovresti vedere che il servizio docker è in esecuzione e abilitato.

(Opzionale): Consentire a un utente non root di eseguire container Docker
Se stai distribuendo Docker Swarm e eseguendo container utilizzando un utente non root, devi aggiungere il tuo utente al gruppo docker in modo che l’utente possa eseguire il comando docker e avviare i container.
Esegui il comando usermod qui sotto per aggiungere il tuo utente attuale al gruppo docker.
sudo usermod -aG docker nome_utenteOra accedi come utente non root ed esegui il comando docker qui sotto per verificare la tua configurazione.
su - nome_utente
docker run hello-worldSe la configurazione ha avuto successo, dovresti essere in grado di eseguire il container hello-world e ottenere il seguente output:

Creazione di Docker Swarm
Ora che hai installato Docker Engine, sei pronto per creare e avviare Docker utilizzando i tuoi server Ubuntu. In questo esempio, utilizzeremo un server come Swarm Master/Manager e due server come Worker Nodes.
Completa i seguenti compiti per configurare Docker Swarm:
- Inizializzare la modalità Swarm sul Master/Manager.
- Aggiungere Worker Nodes a Docker Swarm.
Iniziamo.
Inizializzare la modalità Swarm sul Master/Manager
Per inizializzare Docker Swarm, esegui il comando docker swarm init qui sotto. Il parametro aggiuntivo –advertise-addr collegherà Docker Swarm all’indirizzo IP specifico, e il parametro –default-addr-pool determina l’indirizzo IP interno per i container in esecuzione sul Swarm.
In questo esempio, la modalità Docker Swarm si collegherà all’indirizzo IP 192.168.5.30 e il pool di indirizzi IP per i container è 10.20.0.0/16.
docker swarm init --advertise-addr 192.168.5.30 --default-addr-pool 10.20.0.0/16Se il processo di inizializzazione ha successo, verrà visualizzato il seguente output. All’interno dell’output, dovresti vedere il token generato per aggiungere i nodi a Docker Swarm.
Successivamente, esegui il seguente comando per controllare lo stato della modalità Swarm.
docker infoSe la modalità Swarm è abilitata, dovresti ottenere l’output Swarm: active con dettagli di NodeID e lo stato di Manager e Node.

Infine, esegui il comando qui sotto per verificare l’elenco dei nodi su Docker Swarm.
docker node lsA questo punto, è disponibile solo un nodo sul tuo Docker Swarm, che è lo Swarm Master/Manager.
Aggiungere Worker Nodes a Docker Swarm
Con Docker Swarm inizializzato, puoi aggiungere nodi worker al tuo Docker Swarm.
Per prima cosa, esegui il comando qui sotto per mostrare il token generato per il nodo worker.
docker swarm join-token workerDovresti vedere istruzioni per aggiungere nodi worker, che includono il token.
Ora, spostati sul nodo worker e aggiungi il nodo worker a Docker Swarm eseguendo il comando docker swarm join qui sotto.
docker swarm join --token SWMTKN-1-0i6kbe2oek1iw19jfpvd2j5l0dhfmssz4w505aeihx7ouz8wqc-2dbk7cnmo12uunj53eywwnqr7 192.168.5.30:2377Quando il processo ha successo, l’output ‘Questo nodo è entrato in uno swarm come worker’ verrà stampato sullo schermo.
Successivamente, torna allo Swarm Master/Manager e esegui il comando qui sotto per verificare l’elenco dei nodi disponibili.
docker node lsSe tutto va bene, ci saranno tre server disponibili su Docker Swarm, 1 il Swarm Manager e 2 nodi worker con stato Pronto e disponibilità in esecuzione.
Esecuzione di un servizio in Docker Swarm
A questo punto, hai creato con successo Docker Swarm con tre server Ubuntu. Ora, imparerai come distribuire la tua applicazione nel Docker Swarm, che è chiamata servizio. Un servizio è un’immagine della tua applicazione microservizio, e potrebbe essere un server HTTP, un server di database o altre applicazioni.
In questo esempio, distribuirai un semplice servizio HTTP con un’immagine Nginx.
Esegui il comando qui sotto per creare un nuovo servizio sul tuo Swarm. In questo esempio, creerai un nuovo servizio test-nginx con 1 replica, esponendo la porta 30001 e basandoti sull’immagine nginx:alpine.
docker service create --replicas 1 --name test-nginx -p 30001:80 nginx:alpineOra, controlla i dettagli del servizio test-nginx utilizzando il comando qui sotto.
docker service inspect test-nginx
docker service inspect --pretty test-nginxDovresti vedere informazioni dettagliate sul servizio test-nginx come segue.

Successivamente, verifica l’elenco dei servizi Docker all’interno del Docker Swarm utilizzando il comando qui sotto.
docker service ls
docker service ps test-nginxSe ha successo, dovresti vedere il servizio test-nginx in esecuzione sul nodo manager con 1 replica e porta esposta 30001.

Infine, accedi al servizio test-nginx tramite l’indirizzo IP dell’host con la porta 30001 utilizzando il comando curl qui sotto.
curl 192.168.5.30:30001
curl -I 192.168.5.30:30001Dovresti vedere il codice sorgente della pagina index.html e i dettagli degli header HTTP.

Scalare il servizio in Docker Swarm
Ora che hai distribuito il servizio Docker, il prossimo compito è scalare il servizio su Docker Swarm. Questo creerà la replicazione desiderata dei tuoi servizi sui nodi worker.
Per scalare un servizio, esegui il comando docker service scale qui sotto. In questo caso, scalerai il servizio test-nginx a 3 repliche.
docker service scale test-nginx=3
Ora esegui il comando qui sotto per verificare il servizio test-nginx. Se il servizio test-nginx è stato scalato, dovresti vedere altre due istanze del servizio create da Docker e in esecuzione su entrambi i nodi worker.
docker service ps test-nginxSpostati nel terminale del nodo worker e esegui il seguente comando per assicurarti che il servizio test-nginx sia in esecuzione.
docker ps
curl 192.168.5.31:30001Se tutto va bene, dovresti vedere il container test-nginx.RANDOM-STRING con stato In esecuzione su ciascuno dei nodi worker.


Eliminare il servizio in Docker Swarm
Per ripulire il tuo ambiente, eliminerai il servizio test-nginx da Docker Swarm e rimuoverai l’immagine docker nginx:alpine.
Elimina il servizio test-nginx e verifica l’elenco dei servizi disponibili su Docker Swarm utilizzando il seguente comando.
docker service rm test-nginx
docker service psOra rimuovi l’immagine nginx:alpine e controlla l’elenco delle immagini scaricate per ciascun server utilizzando il comando qui sotto.
docker rmi nginx:alpine
docker imagesConclusione
Per concludere, hai ora installato con successo Docker Swarm su Ubuntu 22.04 passo dopo passo. Hai distribuito Docker Swarm con tre server Ubuntu e hai imparato come distribuire, scalare e rimuovere applicazioni o servizi su Docker Swarm.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.