Docker Swarm · 8 min read · Oct 05, 2025

Cómo instalar Docker Swarm en Ubuntu 22.04

Docker Swarm es una orquestación de contenedores construida sobre Docker Engine. Te permite crear y desplegar un clúster de nodos Docker en múltiples servidores. Docker Swarm simplifica el despliegue de tu aplicación en contenedores en un servicio. Proporciona una forma simple y fácil de gestionar y orquestar contenedores.

Docker Swarm ofrece un alto nivel de aplicaciones disponibles. En Docker Swarm, puedes ejecutar una sola aplicación o servicio en múltiples nodos, que se llaman ‘Nodos Trabajadores’. Y también hay un nodo llamado “Swarm Manager”, que es la gestión y orquestación central de Docker Swarm.

En este tutorial, te mostraremos cómo instalar el software Docker Swarm en servidores Ubuntu 22.04 paso a paso.

Requisitos previos

Para completar esta guía, asegúrate de estar equipado con lo siguiente:

  • 3 servidores Ubuntu 22.04 - Uno se utilizará como Swarm Master/Manager, y dos servidores se utilizarán como Nodos Trabajadores.
  • Un usuario no root con privilegios de administrador sudo.

Configuración de sistemas

Antes de instalar Docker y configurar Docker Swarm, debes preparar tus sistemas completando las siguientes tareas:

  • Abrir puertos para Docker Swarm: Debes abrir algunos puertos que son utilizados por Docker Swarm en todos tus servidores. Esto se puede lograr a través de UFW (Uncomplicated Firewall).
  • Agregar el repositorio de Docker: Utilizarás el repositorio oficial de Docker para instalar Docker Engine en todos tus servidores.

Abrir puertos para Docker Swarm

En la siguiente sección, abrirás el puerto 22 para SSH, luego los puertos 2377, 7946 y 4789 para Docker Swarm a través de UFW (Uncomplicated Firewall) en el Swarm Master/Manager y en los Nodos Swarm. El UFW está instalado por defecto, pero aún no se ha iniciado.

Primero, ejecuta el comando ufw a continuación para agregar el perfil de aplicación OpenSSH y abrir el puerto SSH predeterminado 22. Luego, inicia y habilita UFW.

sudo ufw allow OpenSSH  
sudo ufw enable

Escribe y para continuar, y deberías obtener la salida Firewall is active and enabled on system startup.

enable ufw

Ahora ejecuta el siguiente comando para abrir los puertos que serán utilizados por los servicios en tu despliegue Swarm. En este caso, asignarás puertos entre 30000:35000 para los servicios.

sudo ufw allow 30000:35000/tcp

A continuación, ejecuta el siguiente comando para abrir puertos para Docker Swarm.

for ports in 2377/tcp 7946/tcp 7946/udp 4789/udp  
do  
sudo ufw allow $ports  
done

setup ufw

Por último, recarga UFW y verifica el estado de UFW ejecutando el comando a continuación.

sudo ufw reload  
sudo ufw status

Deberías ver el perfil de aplicación OpenSSH y los puertos para Docker Swarm, incluyendo 2377, 7946 y 4789 habilitados en UFW.

verify ufw

Agregar el repositorio de Docker

Después de configurar el UFW, debes agregar el repositorio oficial de Docker a tus servidores. Utilizarás el repositorio oficial de Docker para instalar Docker Engine.

Ejecuta el comando a continuación para instalar algunos paquetes básicos en tus servidores Ubuntu.

sudo apt install apt-transport-https ca-certificates curl gnupg lsb-release -y

install basic deps

A continuación, ejecuta el comando a continuación para agregar la clave GPG de Docker y el repositorio a tus sistemas.

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.gpg
echo \  
  "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/null

Por último, actualiza y refresca tu repositorio de Ubuntu en cada servidor ejecutando el comando a continuación.

sudo apt update

Deberías ver el repositorio de Docker siendo recuperado durante el proceso.

update repo

Instalando Docker Engine

Después de preparar tus sistemas Ubuntu, instalarás Docker Engine en esos servidores.

Instala Docker Engine en tus sistemas Ubuntu utilizando el comando a continuación. Ingresa y para confirmar la instalación.

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

install docker

Una vez completada la instalación, ejecuta el comando systemctl a continuación para verificar el servicio docker y asegurarte de que el servicio esté en funcionamiento.

sudo systemctl is-enabled docker  
sudo systemctl status docker

En la siguiente salida, deberías ver que el servicio docker está en funcionamiento y habilitado.

check docker service

(Opcional): Permitir que usuarios no root ejecuten contenedores Docker

Si estás desplegando Docker Swarm y ejecutando contenedores utilizando un usuario no root, debes agregar tu usuario al grupo docker para que el usuario pueda ejecutar el comando docker y ejecutar contenedores.

Ejecuta el comando usermod a continuación para agregar tu usuario actual al grupo docker.

sudo usermod -aG docker username

Ahora inicia sesión como un usuario no root y ejecuta el comando docker a continuación para verificar tu configuración.

su - username  
docker run hello-world

Si la configuración es exitosa, deberías poder ejecutar el contenedor hello-world y obtener la siguiente salida:

docker hello-world

Creando Docker Swarm

Ahora que has instalado Docker Engine, estás listo para crear y comenzar Docker utilizando tus servidores Ubuntu. En este ejemplo, utilizaremos un servidor como Swarm Master/Manager y dos servidores como Nodos Trabajadores.

Completa las siguientes tareas para configurar Docker Swarm:

  • Inicializar el modo Swarm en el Master/Manager.
  • Agregar Nodos Trabajadores al Docker Swarm.

Comencemos.

Inicializando el modo Swarm en Master/Manager

Para inicializar Docker Swarm, ejecuta el comando docker swarm init a continuación. El parámetro adicional –advertise-addr vinculará Docker Swarm dentro de la dirección IP específica, y el parámetro –default-addr-pool determina la dirección IP interna para los contenedores que se ejecutan en el Swarm.

En este ejemplo, el modo Docker Swarm se vinculará a la dirección IP 192.168.5.30 y el grupo de direcciones IP para los contenedores es 10.20.0.0/16.

docker swarm init --advertise-addr 192.168.5.30 --default-addr-pool 10.20.0.0/16

Si el proceso de inicialización es exitoso, se mostrará la siguiente salida. Dentro de la salida, deberías ver el token generado para agregar Nodos a Docker Swarm.

A continuación, ejecuta el siguiente comando para verificar el estado del modo Swarm.

docker info

Si el modo Swarm está habilitado, deberías obtener la salida Swarm: active con detalles de NodeID, y el estado de Manager y Node.

check swarm mode

Por último, ejecuta el comando a continuación para verificar la lista de Nodos en el Docker Swarm.

docker node ls

En este punto, solo hay un Nodo disponible en tu Docker Swarm, que es el Swarm Master/Manager.

Agregando Nodos Trabajadores al Docker Swarm

Con el Docker Swarm inicializado, puedes agregar nodos trabajadores a tu Docker Swarm.

Primero, ejecuta el comando a continuación para mostrar el token generado para el nodo trabajador.

docker swarm join-token worker

Deberías ver instrucciones para agregar nodos trabajadores, que incluyen el token.

Ahora, muévete al nodo trabajador y agrega el nodo trabajador al Docker Swarm ejecutando el comando docker swarm join a continuación.

docker swarm join --token SWMTKN-1-0i6kbe2oek1iw19jfpvd2j5l0dhfmssz4w505aeihx7ouz8wqc-2dbk7cnmo12uunj53eywwnqr7 192.168.5.30:2377

Cuando el proceso sea exitoso, la salida ‘This node joined a swarm as a worker’ se imprimirá en tu pantalla.

A continuación, regresa al Swarm Master/Manager y ejecuta el comando a continuación para verificar la lista de nodos disponibles.

docker node ls

Si todo va bien, habrá tres servidores disponibles en el Docker Swarm, 1 el Swarm Manager y 2 nodos trabajadores con el estado Ready y la disponibilidad en ejecución.

Ejecutando servicio en Docker Swarm

En este punto, has creado exitosamente Docker Swarm con tres servidores Ubuntu. Ahora, aprenderás cómo desplegar tu aplicación en el Docker Swarm, que se llama un servicio. Un servicio es una imagen de tu aplicación de microservicio, y podría ser un servidor HTTP, servidor de base de datos u otras aplicaciones.

En este ejemplo, desplegarás un servicio HTTP simple con una imagen de Nginx.

Ejecuta el comando a continuación para crear un nuevo servicio en tu Swarm. En este ejemplo, crearás un nuevo servicio test-nginx con 1 réplica, exponiendo el puerto 30001, y basándote en la imagen nginx:alpine.

docker service create --replicas 1 --name test-nginx -p 30001:80 nginx:alpine

Ahora, verifica los detalles del servicio test-nginx usando el comando a continuación.

docker service inspect test-nginx  
docker service inspect --pretty test-nginx

Deberías ver información detallada sobre el servicio test-nginx como la siguiente.

check service

A continuación, verifica la lista de servicios de Docker dentro del Docker Swarm usando el comando a continuación.

docker service ls  
docker service ps test-nginx

Si es exitoso, deberías ver el servicio test-nginx ejecutándose en el nodo manager con 1 réplica y el puerto expuesto 30001.

check service detail

Por último, accede al servicio test-nginx a través de la dirección IP del host con el puerto 30001 usando el comando curl a continuación.

curl 192.168.5.30:30001  
curl -I 192.168.5.30:30001

Deberías ver el código fuente de la página index.html y los detalles de los encabezados HTTP.

check nginx service

Escalando servicio en Docker Swarm

Ahora que has desplegado el servicio Docker, la siguiente tarea es escalar el servicio en Docker Swarm. Esto creará la replicación deseada de tus servicios a través de nodos trabajadores.

Para escalar un servicio, ejecuta el comando docker service scale a continuación. En este caso, escalarás el servicio test-nginx a 3 réplicas.

docker service scale test-nginx=3

scale service

Ahora ejecuta el comando a continuación para verificar el servicio test-nginx. Si el servicio test-nginx se escaló, deberías ver otros dos servicios creados por Docker y ejecutándose en ambos nodos trabajadores.

docker service ps test-nginx

Muévete a la terminal del nodo trabajador y ejecuta el siguiente comando para asegurarte de que el servicio test-nginx esté en funcionamiento.

docker ps  
curl 192.168.5.31:30001

Si todo va bien, deberías ver el contenedor test-nginx.RANDOM-STRING con estado Up en cada uno de los nodos trabajadores.

check service worker1

check service worker2

Eliminando servicio en Docker Swarm

Para limpiar tu entorno, eliminarás el servicio test-nginx de Docker Swarm y eliminarás la imagen docker nginx:alpine.

Elimina el servicio test-nginx y verifica la lista de servicios disponibles en Docker Swarm usando el siguiente comando.

docker service rm test-nginx  
docker service ps

Ahora elimina la imagen nginx:alpine y verifica la lista de imágenes descargadas para cada servidor usando el siguiente comando.

docker rmi nginx:alpine  
docker images

Conclusión

Para concluir, ahora has instalado exitosamente Docker Swarm en Ubuntu 22.04 paso a paso. Has desplegado Docker Swarm con tres servidores Ubuntu y aprendido cómo desplegar, escalar y eliminar aplicaciones o servicios en Docker Swarm.

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.