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 enableEscribe y para continuar, y deberías obtener la salida Firewall is active and enabled on system startup.

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/tcpA 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
Por último, recarga UFW y verifica el estado de UFW ejecutando el comando a continuación.
sudo ufw reload
sudo ufw statusDeberías ver el perfil de aplicación OpenSSH y los puertos para Docker Swarm, incluyendo 2377, 7946 y 4789 habilitados en 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
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.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/nullPor último, actualiza y refresca tu repositorio de Ubuntu en cada servidor ejecutando el comando a continuación.
sudo apt updateDeberías ver el repositorio de Docker siendo recuperado durante el proceso.

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
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 dockerEn la siguiente salida, deberías ver que el servicio docker está en funcionamiento y habilitado.

(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 usernameAhora 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-worldSi la configuración es exitosa, deberías poder ejecutar el contenedor hello-world y obtener la siguiente salida:

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/16Si 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 infoSi el modo Swarm está habilitado, deberías obtener la salida Swarm: active con detalles de NodeID, y el estado de Manager y Node.

Por último, ejecuta el comando a continuación para verificar la lista de Nodos en el Docker Swarm.
docker node lsEn 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 workerDeberí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:2377Cuando 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 lsSi 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:alpineAhora, verifica los detalles del servicio test-nginx usando el comando a continuación.
docker service inspect test-nginx
docker service inspect --pretty test-nginxDeberías ver información detallada sobre el servicio test-nginx como la siguiente.

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-nginxSi es exitoso, deberías ver el servicio test-nginx ejecutándose en el nodo manager con 1 réplica y el puerto expuesto 30001.

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:30001Deberías ver el código fuente de la página index.html y los detalles de los encabezados HTTP.

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
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-nginxMué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:30001Si todo va bien, deberías ver el contenedor test-nginx.RANDOM-STRING con estado Up en cada uno de los nodos trabajadores.


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 psAhora 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 imagesConclusió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.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.