Domina Docker Swarm desde cero en tu propia máquina. Activa el modo swarm, entiende los roles de manager y worker, usa tokens de unión y protege la comunicación con TLS. Con pocos comandos, verás cómo inspeccionar nodos, leer su estado y salir del cluster sin romper nada.
¿Qué es Docker Swarm mode y cómo iniciarlo?
Docker Swarm no es un paquete externo: es un modo de ejecución del daemon de Docker. No necesitas instalar nada adicional. Puedes crear un swarm productivo con varios servidores, pero para aprender basta con tu laptop.
Actívalo con un comando simple.
Se crea automáticamente un nodo manager.
Sin manager, no existe un swarm.
Los tokens diferencian unión de workers y de managers.
¿Cómo activar swarm con docker swarm init?
Inicia el swarm en tu equipo. Obtendrás el ID del nodo, el rol de manager y el comando para unir workers.
# inicializardocker swarm init
¿Qué significan manager, worker y token?
manager: coordina el swarm y valida uniones con tokens.
worker: ejecuta contenedores bajo las órdenes del manager.
token de worker/manager: credencial para unirse. Se obtiene con:
# ver el comando y token para unir managersdocker swarm join-token manager
Ojo: cada inicialización genera tokens nuevos.
¿Cómo ver y explorar nodos en un cluster?
Una vez activo el modo swarm, puedes listar nodos y obtener detalles útiles para operar y diagnosticar. Verás el ID, el hostname, el estado y la versión de Docker Engine del nodo.
¿Para qué sirve docker node ls?
Lista los nodos presentes en el swarm.
dockernodels
Identifica rápidamente la versión del engine por nodo.
Detecta nodos desactualizados con facilidad.
¿Qué muestra docker node inspect y el flag --pretty?
Inspecciona el nodo actual con un JSON completo o una vista legible.
# inspeccionar el nodo actualdockernode inspect self
# salida más legible (puede ocultar datos)dockernode inspect --pretty self
Encontrarás datos como: rol de manager, fechas de creación y actualización, y el bloque TLS info con trust root.
¿Por qué TLS y trust root protegen la red?
El manager cifra toda la comunicación entre nodos con TLS. Así, los datos del swarm (servicios, contenedores y secretos) viajan encriptados. Esto evita exponer credenciales en texto plano cuando el cluster corre en la nube.
Beneficio clave: seguridad integrada sin configurar otra capa.
El trust root valida certificados y asegura la confianza entre nodos.
¿Cómo abandonar el swarm y verificar el estado?
Si el único nodo es un manager y se va, el swarm puede quedar irrecuperable. Por eso, Docker pide confirmación. En pruebas locales, puedes forzar la salida y volver al modo normal de Docker.
¿Cómo usar docker swarm leave de forma segura?
Primero intenta salir; si eres manager, usa la fuerza bajo tu propio riesgo.
# salir del swarmdocker swarm leave
# forzar la salida si eres managerdocker swarm leave --force
Un worker puede salir sin impacto mayor: los managers reubican contenedores.
Un manager saliendo implica riesgo: úsalo solo si entiendes las consecuencias.
¿Qué indica Docker info sobre swarm active o inactive?
Consulta el estado del modo swarm del daemon.
docker info
Verás swarm inactive si el modo está apagado.
Tras docker swarm init, aparecerá swarm active con más datos: ID de nodo, rol de manager e ID del cluster.
¿Tienes dudas, trucos o experiencias con swarm en tu entorno local o en la nube? Cuéntalo en los comentarios y aprendemos juntos.
// Iniciar docker swarm
docker swarm init
// Obtener token para unir managerdocker swarm join-token manager
// Ver los nodos que tenemos
docker node ls
// Ver información del nodo
docker node inspect self
// Salir del modo swarm
//salir del modo swarmdocker swarm leave
//si un worker node se va, dará error, podemos forzarlo.docker swarm leave --force
// ver estado de docker Swarmdocker info | grep Swarm// Forzar salida de modo swarm abreviadodocker swarm leave -f
// Imprimir en forma legible la información del nododocker node inspect --pretty self
Swarm no es un paquete aparte de docker, swarm es nativo.
Docker swarm init : inicia un nodo manager.
Debe existir como mínimo un manager para que exista swarm.
docker swarm join-token manager
docker node ls : muestra los nodos disponibles
Toda la comunicación entre nodos está encriptada usando certificados TLS.
docker node inspect --pretty self: inspecciona el nodo
docker swarm leave --force: cierra el modo swarm, regresa a docker normal.
Muchas gracias, aporte:
docker swarm join-token manager|worker: Devuelve el comando para unir un nodo con su token correspondiente a manager o worker.
Probable error: docker swarm init
Error response from daemon: could not choose an IP address to advertise since this system has multiple addresses on interface wlp8s0 (::15c8:7991:b99f:9c71 and ::ae3d:603b:de2f:1d18) - specify one with --advertise-addr
Transport Layer Security (TLS), y su predecesor ahora obsoleto Secure Sockets Layer (SSL), son protocolos criptograficos disegados para proveer comunicación segura en nuestras redes de computadora.
Wikipedia
Tengo una inconsistencia cuando agrego un nodo. Resulta que los nodos estan en diferentes subredes entonces cuando inicializo el manager me da la ip de mi equipo que seria 192.168.40.71 y el nodo worker esta en una subred 192.168.0.0 entonces cuando le hago el join no me queda registrado con la ip de la maquina (192.168.0.57) si no con la ip de la puerta de enlace 192.168.200.100 como puedo cambiar esta ip?
Aquí hay una pregunta de StackOverflow que responde específicamente qué requerimientos existen para joinear nodos entre distintas subnets.
El nodo manager, es también el load balancer?
Asi es Swarm usa algo llamado ingress load balancing para exponer los servicios al exterior (los que tu decidas).
Docker Swarm NO es un paquete o Plug-In que se tiene que instalar aparte de Docker, es un modo en que se ejecuta Docker.
Siempre que se ejecuta Docker Swarm init, se esta creando un nuevo Swarm (OJO con hacerlo más de una vez, ya que puede causar algún problema).
IMPORTANTE: Un BONUS de utilizar Swarm es el uso de la comunicación entre nodos mediante TLS/SSL.
Excelente!
nunca ejecutar un comando docker swarm leave --force si somos manager y tenemos workers activos conectados
¿Cómo uso docker swarm para una base de datos en postgres?
que pasa si ya tengo un nodo con docker corriendo... lo puedo unir como worker al manager que tengo en otro host?
La idea es que se permita una alta disponibilidad pero si el docker swarm administrador se cae o falla.... se puede hacer un cluster de administradores para evitar eso?.... de qué forma se haría?
Alguien sabe como hacer que la terminal de Mac se vea así como la del profe?? Está muy buena
- docker swarm init: para iniciar docker swarm. Cada vez que se inicia como swarm, el equipo se convierte en manager.- docker swarm join-token manager: para unirse como manager.- docker swarm join --token TOKEN server:puerto: para unir un nodo como worker al server con puerto 2377- docker node ls: para ver los nodos swarm de docker.El manager cuenta con un certificado, con el cuál encripta la comunicación entre los workers y los managers.- docker node inspect --pretty self: para ver los datos del nodo y del certificado.- docker swarm leave: para salir de swarm de docker.- docker swarm leave --force: para forzar la salida del docker swarm, como cuando eres el último manager.
docker-compose ya se pude usar de forma nativa con el comando de docker
docker compose up -d
docjer compose down --volumnes
Por favor agregar los comandos que aparecen en el video.
##DockerSwarmdocker swarm init ## Iniciar docker swarm
docker swarm join-token manager ## Obtener token para unir manager
docker node ls ## Ver los nodos que tenemos
docker node inspect self ## Ver información del nodo
docker swarm leave --force ## Salir del modo swarm
-- Iniciar docker swarm en este nodo, muestra el ID y nos dice que es el manager
docker swarm init --advertise-addr <MANAGER-IP>
-- Obtener token para unir manager
docker swarm join-token manager
-- Listar los nodos que tenemos, estamos en el nodo manager
docker node ls
-- Ver información del nodo manager, observamos en TrustRoot: Certificado de verificacion