- Docker Swarm permet crear clústers de nodes per orquestrar serveis en contenidors amb alta disponibilitat i balanceig de càrrega integrat.
- Els conceptes de node, manager, worker, servei, tasca i xarxes overlay són la base per entendre com Swarm gestiona i distribueix contenidors.
- Ordres com docker swarm init, docker service create o docker service scale faciliten el desplegament, l'escalat i l'actualització d'aplicacions.
- Swarm encaixa molt bé en projectes petits i mitjans, integrant-se amb serveis cloud, pràctiques DevOps, IA i intel·ligència de negoci.

Gestionar dotzenes o centenars de contenidors repartits entre diverses màquines es pot convertir en un autèntic maldecap si només tires de Docker “a pèl”. Quan comences a parlar d'alta disponibilitat, escalat automàtic o desplegaments sense caiguda, necessites més que contenidors solts: necessites orquestració de contenidors . I aquí és on entra en joc Docker Swarm, la solució nativa de Docker per coordinar contenidors a clúster.
Si veniu d'usar Docker Compose en una única màquina i notes que se us queda curt per a entorns reals, Swarm és el següent pas lògic. Et permet muntar un clúster de nodes, repartir serveis entre ells, balancejar trànsit, reemplaçar contenidors caiguts i, en definitiva, convertir un munt de servidors en una única plataforma coherent i preparada per a producció, sense haver de fer el salt directe a Kubernetes si et sembla massa pesat o complex.
Què és Docker Swarm i per què importa a l'orquestració de contenidors
Docker Swarm és el motor de clustering i orquestració integrat directament a Docker. No és una eina externa, sinó un mode d'operació del mateix Docker Engine que et permet agrupar diverses màquines (físiques o virtuals) en un clúster lògic, anomenat swarm, sobre el qual desplega serveis en lloc de contenidors aïllats.
La gràcia de Swarm és que abstreu el conjunt de nodes i et deixa treballar com si tinguessis un sol “súper servidor”. Tu defineixes serveis, el seu nombre de rèpliques, ports exposats i restriccions, i Swarm decideix on executar cada contenidor (tasques), com redistribuir-los si un node cau i com balancejar el trànsit entre ells.
En termes d'orquestració de contenidors , Docker Swarm cobreix les necessitats típiques de molts equips DevOps: escalat horitzontal senzill, alta disponibilitat bàsica, balanceig de càrrega intern, xarxes superposades entre nodes i desplegaments controlats, i resulta apropiat per a arquitectures de microserveis . És especialment interessant en projectes petits i mitjans, o en organitzacions molt acostumades a l'ecosistema Docker que no necessiten tota la complexitat de Kubernetes.
Swarm s'ajusta molt bé a escenaris on es busca simplicitat : laboratoris, entorns de staging, clusters on-premise dins una pime, o fins i tot producció al núvol quan no vols gestionar un monstre de plataforma. A més, encaixa a la perfecció amb pipelins de CI/CD i pràctiques de DevOps que ja usen Docker per empaquetar aplicacions.
Conceptes clau a Docker Swarm: nodes, serveis i xarxes
Abans de posar-te a escriure ordres com a boig , és fonamental entendre com anomena Swarm a cada peça del puzle. Aquests conceptes són els que veuràs tota l'estona a la CLI ia la documentació.
Node : és qualsevol màquina que forma part del swarm, pot ser un servidor físic, una VM al núvol o fins i tot el teu portàtil en un entorn de proves. Cada node executa Docker Engine i es registra al clúster amb un rol concret.
Node Manager : és el cervell del clúster. S'encarrega del control de l'estat desitjat, el planificador (scheduling) de tasques i l'orquestració. Hi pot haver diversos mànagers per garantir alta disponibilitat del pla de control, però un actua com a líder i coordina la resta.
Node Worker : són els “currantes” del swarm. No prenen decisions d'orquestració; es limiten a executar les tasques (contenidors) que els assigna el manager. Això permet escalar la capacitat de còmput afegint més workers quan calgui.
Servei : és la unitat de desplegament a Swarm. Defineix la imatge de contenidor a utilitzar, el nombre de rèpliques, ports, variables dentorn, configuracions, secrets i altres opcions. A diferència d'executar un contenidor solt amb docker run, amb docker service create descrius un servei que Swarm manté a l'estat desitjat.
Tasca : és la instància concreta d'un contenidor associada a un servei i assignada a un node. Si demanes un servei amb 3 rèpliques, Swarm crea 3 tasques. Si una tasca mor, el manager en crea una altra al seu lloc per mantenir el nombre de rèpliques.
Overlay Network : és un tipus de xarxa virtual distribuïda que permet que contenidors situats en nodes diferents es comuniquin com si estiguessin a la mateixa xarxa local. Swarm es recolza en aquestes xarxes overlay per connectar serveis, aplicar balanceig entre rèpliques i aïllar aplicacions entre si.
Primers passos: inicialitzar i comprovar un clúster Docker Swarm
Muntar un swarm bàsic és sorprenentment directe si ja tens Docker instal·lat a les teves màquines. No necessites programari extra: només habilitar el mode swarm i unir nodes al clúster.
Pas 1: crear el primer manager . A la màquina que vulguis utilitzar com a node manager inicial, executa:
docker swarm init –advertise-addr
El paràmetre –advertise-addr indica la IP amb què la resta de nodes veurà aquest manager. Després d'executar l'ordre, Docker et mostrarà automàticament un token i una ordre preparada perquè altres nodes puguin unir-se al swarm com a workers.
Pas 2: unir nodes worker al clúster . A cada màquina que actuarà com a worker, executa alguna cosa similar a:
docker swarm join –token :2377
El token d'unió i la IP del mànager surten de l'output del docker swarm init. El port 2377 és l'usat per defecte per a la comunicació de control. A partir d'aquell moment, el node apareixerà com a part del swarm i estarà llest per rebre tasques.
Verificant l'estat del clúster és tan senzill com anar-te'n a un manager (no funciona en un worker aïllat) i llançar:
docker node ls
Aquesta ordre us mostra tots els nodes del swarm , el vostre ID, hostname, rol (manager o worker) i estat actual. Des d'aquí podreu detectar si algun node està down, en mode drain o presenta problemes de connexió.
Desplegament de serveis a Docker Swarm: del primer nginx a la producció
Un cop tens el clúster en marxa , arriba el que és interessant: desplegar serveis. En lloc de llançar contenidors únics amb docker run, defineix serveis que Swarm manté i reequilibra automàticament.
Crear un servei senzill com un servidor web Nginx accessible des de fora del clúster es fa amb una ordre de l'estil:
docker service create –name my-nginx -p 80:80 nginx
Amb això aixeques un servei anomenat my-nginx que exposa el port 80 del contenidor al port 80 dels nodes del clúster. Swarm s'encarrega de publicar el servei i balancejar les peticions entrants entre les diferents rèpliques quan les escales.
Llistar els serveis desplegats t'ajuda a tenir sota control què està corrent al swarm:
servei docker ls
Aquí veus el nom del servei, el mode i el nombre de rèpliques en format actual/desitjat. Si, per exemple, poses 3/5 vol dir que encara està en procés de crear tasques per arribar a aquest estat desitjat.
Consultar els detalls i l'estat de les tasques d'un servei en concret us permet identificar en quin node corre cada instància:
docker service ps my-nginx
A la sortida es mostren les tasques, el node assignat , l'estat (Running, Preparing, Shutdown, etc.), la imatge usada i el temps que s'executen. És bàsic per depurar problemes de desplegament o de distribució de càrrega.
Gestió del cicle de vida: escalar, actualitzar i eliminar serveis
Un dels grans avantatges de l'orquestració és la capacitat d'escalar i d'actualitzar serveis sense haver d'anar servidor per servidor. Swarm t'ho posa força fàcil des de la línia d'ordres.
Escalar un servei a Docker Swarm vol dir indicar quantes rèpliques d'un servei vols en total. Per exemple, si heu creat my-nginx amb una sola rèplica i en voleu passar a tres:
docker service scale my-nginx=3
Swarm s'encarrega de programar les noves tasques als nodes disponibles, respectant recursos i estat dels workers. Si més endavant encara necessites més capacitat, pots pujar a cinc rèpliques amb:
docker service scale my-nginx=5
Actualitzar la imatge d‟un servei és un altre punt clau, sobretot en producció. En lloc de parar i esborrar contenidors manualment, pots fer un update controlat:
docker service update –image nginx:latest my-nginx
Aquesta ordre ordena a Swarm que canviï progressivament les tasques existents a la nova imatge, seguint l'estratègia d'actualització definida (per defecte, rolling update). Així minimitzes l'impacte sobre els usuaris finals.
Eliminar un servei quan ja no ho necessites també es fa a nivell de swarm, no de contenidors individuals:
docker service rm my-nginx
Amb això Swarm atura i elimina totes les tasques associades i allibera recursos als nodes. És una forma neta de desmantellar components que ja no tenen sentit dins de la teva arquitectura.
Pràctica guiada: muntar el teu propi clúster i desplegar un servei
Per consolidar conceptes, res com un petit exercici que pots replicar en un entorn de laboratori, amb màquines virtuals locals o instàncies barates al núvol.
Exercici 1: configurar un clúster Docker Swarm . La idea és que tinguis almenys tres nodes: un com a mànager i dos com a workers. Al mànager, habilita el swarm amb:
docker swarm init –advertise-addr
A continuació copia l'ordre d'unió que et mostra la sortida i executa'l a cada worker:
docker swarm join –token :2377
Comproveu que tot ha anat bé amb:
docker node ls
Veuràs el manager en estat Leader i els workers com a Active. Si algun apareix com a Down, revisa connectivitat, firewall i versió de Docker.
Exercici 2: desplegar i escalar un servei . Amb el cluster llest, crea un servei nginx accessible per HTTP:
docker service create –name my-nginx -p 80:80 nginx
Comprova la seva existència amb :
servei docker ls
Escala el servei a tres rèpliques usant:
docker service scale my-nginx=3
Revisa on s'han desplegat les tasques amb:
docker service ps my-nginx
Com a solució bàsica a l'exercici , hauries de veure les tres tasques repartides entre diferents nodes (si hi ha recursos suficients), i en fer peticions HTTP al port 80 del cluster, Swarm anirà encaminant el trànsit a les diferents rèpliques segons el seu balancejador intern.
Avantatges de Docker Swarm davant la gestió manual de contenidors
Usar Swarm en comptes de llançar contenidors solts aporta una sèrie de beneficis que es noten des del moment en què necessites alguna cosa més que un entorn de proves simple.
Desplegament senzill i integrat a la CLI de Docker : no has d'aprendre una eina completament nova; les ordres de gestió de serveis i clúster s'assemblen molt al que ja fas amb docker run, docker ps o docker images.
Balanceig de càrrega incorporat : quan exposes un servei amb -p, Swarm publica el port als nodes necessaris i reparteix el trànsit entre les rèpliques disponibles. No necessites afegir un balancejador extern bàsic com Traefik per distribuir peticions, cosa que simplifica l'arquitectura inicial.
Alta disponibilitat i tolerància a fallades : si un contenidor rebenta o un node worker cau, Swarm detecta la pèrdua de tasques i intenta recrear-les en altres nodes per mantenir el nombre de rèpliques. Això evita moltes caigudes de servei per errors puntuals.
Gestió centralitzada de l'estat desitjat : tu declares quantes rèpliques vols, quina imatge utilitzar, quins ports obrir i quines restriccions aplicar, i és el clúster qui s'encarrega de convergir aquest estat. Canvis futurs (updates, escalats, drena de nodes) també es gestionen des d'aquest pla de control.
Quan té sentit fer servir Docker Swarm en els teus projectes
No totes les situacions requereixen Kubernetes ni microserveis hipervitaminats . Docker Swarm encaixa molt bé en una sèrie de casos d'ús on es busca equilibri entre simplicitat i capacitats d'orquestració.
Clústers de producció petits i mitjans : si gestiones unes quantes aplicacions de negoci, APIs o serveis interns i la mida de la teva infraestructura no és massiu, Swarm ofereix el necessari sense obligar-te a aprendre un ecosistema enorme.
Equips molt integrats amb Docker que volen fer el salt a l'orquestració sense enganxar-se amb la corba d'aprenentatge de Kubernetes. Com que Swarm forma part del propi Docker Engine, la transició sol ser més suau i ràpida.
Entorns cloud i arquitectures distribuïdes on vols seguir usant serveis gestionats dels grans proveïdors (bases de dades, cues de missatges, emmagatzematge, etc.) mentre les teves aplicacions corren en contenidors orquestrats amb Swarm. És una manera raonable de combinar simplicitat amb les prestacions del núvol.
Casos d'ús de DevOps i automatització on necessites pipelins que construeixin imatges, les pugin a un registre i despleguin automàticament en un clúster. Swarm s'integra bé amb eines de CI/CD i facilita cicles ràpids de lliurament continu.
Quan necessitis un control extrem, ecosistema massiu o integracions complexes potser Kubernetes tingui més sentit. Però per a molts projectes reals, Swarm proporciona l'orquestració necessària amb menys fricció operativa.
Guies pràctiques i enfocament DevOps: dels fonaments a desplegaments avançats
Si t'has sentit perdut entre tutorials solts, errors rars en producció i documentació inconnexa sobre Docker Swarm, no ets l'únic. Molts perfils de desenvolupament i operacions es veuen desbordats en passar de contenidors individuals a una plataforma orquestrada.
Una guia pràctica completa de DevOps centrada a Swarm sol organitzar-se en diversos blocs clau. Primer s'assenten els fonaments de Docker: creació d'imatges, gestió de contenidors i optimització de contenidors , ús de registres (registries) i bones pràctiques d'empaquetatge. Aquesta base sòlida és indispensable perquè després l'orquestració no es converteixi en un infern.
Després s'aprofundeix en xarxes i persistència : tipus de xarxes Docker (bridge, host, overlay, macvlan), maneig de volums i persistència de dades, així com desplegament d'aplicacions multicontenidor amb Docker Compose. Això dóna una maqueta clara de com ha de lluir el teu stack abans de portar-lo a un swarm distribuït.
El següent nivell se centra en la implementació de serveis Swarm , cobrint des de la inicialització del clúster fins a característiques avançades com a secrets, configs i stacks (piles). Aquí ja treballes amb definicions declaratives de serveis, credencials xifrades i configuracions compartides entre contenidors.
Un altre bloc indispensable és el de balanceig, registre i observabilitat : aprendre a exposar serveis correctament, revisar logs, detectar colls d'ampolla i aplicar tècniques de troubleshooting per mantenir alta disponibilitat en el dia a dia. Per monitoritzar i diagnosticar sistemes et vindrà bé una guia de monitorització avançada que cobreixi mètriques i alertes.
Finalment s'integra tot en pipelins de DevOps amb exercicis de programació pràctica: des del build automatitzat d'imatges fins al seu desplegament continu al clúster, garantint que cada canvi al codi recorri el camí fins a producció de forma fiable i repetible.
Més enllà del bàsic: xarxes Docker i propers passos amb Swarm
Quan domines l'arrencada del clúster i els primers serveis , el salt de nivell següent acostuma a ser comprendre a fons com es comuniquen els teus contenidors entre si i amb l'exterior.
Les xarxes Docker tipus bridge i host governen gran part de la comunicació en una sola màquina, mentre que les xarxes overlay són la peça clau per connectar contenidors en diferents nodes d'un swarm. Entendre les seves diferències, quan fer servir cadascuna i com interactuen amb tallafocs i balancejadors externs és fonamental per evitar sorpreses en producció.
Xarxes com macvlan permeten assignar adreces IP “reals” de la xarxa física als contenidors, cosa que pot ser molt útil en entorns específics on necessites que els serveis es comportin com a hosts independents a nivell de xarxa, però també afegeix complexitat i requisits addicionals de configuració.
Un “deep dive” a les xarxes Docker t'ajudarà a alinear millor el teu disseny de serveis Swarm amb la topologia de xarxa de la teva organització o del teu proveïdor cloud, definint clarament quins serveis són interns, quins s'exposen a l'exterior i com segmentar el trànsit entre entorns (desenvolupament, proves, producció).
Una altra línia d'avenç interessant a Swarm és aprofundir en l'ús de secrets i configs per manejar credencials, certificats i fitxers de configuració sense ficar-los a cabells a la imatge ni en variables d'entorn planes. Això augmenta la seguretat i fa més ordenada la gestió d'entorns.
Serveis de desenvolupament a mida, cloud i intel·ligència de negoci al voltant de Docker Swarm
L'orquestració de contenidors no viu aïllada de la resta de l'ecosistema TI . Empreses de desenvolupament especialitzades en aplicacions a mida i programari a mida solen recolzar-se en plataformes de contenidors com Swarm per lliurar solucions més robustes i fàcils d'escalar.
Integrar Swarm amb serveis cloud d'AWS i Azure permet desplegar clústers flexibles
i aprofitar components gestionats del núvol (bases de dades, cues de missatges, emmagatzematge d'objectes), mantenint alhora el control directe sobre la capa d'execució de contenidors.
Paral·lelament, la intel·ligència artificial i la IA per a empreses s'encaixen molt bé en un entorn orquestrat amb contenidors: models d'IA, microserveis d'inferència i agents IA poden executar-se com a serveis Swarm que escalen segons la càrrega, evitant que una sola màquina es converteixi en coll d'ampolla.
En l'àmbit d'intel·ligència de negoci i Power BI , comptar amb un backend desplegat a Docker Swarm facilita treure dades des d'APIs, serveis ETL i pipelins de processament de forma robusta. L'orquestració assegura que aquests serveis estiguin sempre disponibles per alimentar quadres de comandament i anàlisi.
La ciberseguretat també guanya pes en aquest context : un clúster ben configurat, amb comunicacions TLS, actualització controlada d'imatges, escaneig de vulnerabilitats i gestió centralitzada de secrets, redueix riscos davant de desplegaments caòtics de contenidors independents. A més, pràctiques de hardening i control d'accés eleven la protecció general de l'entorn.
Al final, combinar desenvolupament a mida, serveis cloud, IA i BI sobre una plataforma d'orquestració com Docker Swarm permet construir solucions modernes, escalables i resilients, sense disparar-ne la complexitat tècnica ni els costos operatius.
Dominar Docker Swarm com a eina d'orquestració de contenidors et col·loca en una posició molt potent dins del món DevOps: passes de barallar-te amb contenidors dispersos i desplegaments fràgils a treballar amb un clúster coherent, escalable i segur, capaç de suportar des d'aplicacions web senzilles fins a arquitectures distribuïdes amb serveis cloud, intel·ligent.
Índex
- 1 Què és Docker Swarm i per què importa a l'orquestració de contenidors
- 2 Conceptes clau a Docker Swarm: nodes, serveis i xarxes
- 3 Primers passos: inicialitzar i comprovar un clúster Docker Swarm
- 4 Desplegament de serveis a Docker Swarm: del primer nginx a la producció
- 5 Gestió del cicle de vida: escalar, actualitzar i eliminar serveis
- 6 Pràctica guiada: muntar el teu propi clúster i desplegar un servei
- 7 Avantatges de Docker Swarm davant la gestió manual de contenidors
- 8 Quan té sentit fer servir Docker Swarm en els teus projectes
- 9 Guies pràctiques i enfocament DevOps: dels fonaments a desplegaments avançats
- 10 Més enllà del bàsic: xarxes Docker i propers passos amb Swarm
- 11 Serveis de desenvolupament a mida, cloud i intel·ligència de negoci al voltant de Docker Swarm
