Docker Swarm es una herramienta de orquestación nativa de Docker que te permite crear y administrar clústeres de contenedores. Con Docker Swarm, puedes distribuir y escalar aplicaciones de manera fácil y eficiente. En esta entrada, exploraremos 15 comandos utilizados para administrar Docker Swarm, desde la creación de un clúster hasta la gestión de servicios, nodos y redes.
1. Iniciar un clúster de Docker Swarm
El primer paso para utilizar Docker Swarm es inicializar un clúster. Utiliza el siguiente comando en el nodo principal:
docker swarm init
Esto creará un clúster Swarm y generará un token que se utilizará para unir otros nodos al clúster.
2. Recuperar token para unir nodos al clúster de Docker Swarm
Para recuperar el token que permite agregar nodos workers al clúster de Docker Swarm, ejecuta el siguiente comando desde un nodo manager:
docker swarm join-token worker
Para recuperar el token que permite agregar un nodo manager al clúster de Docker Swarm, ejecuta el siguiente comando desde un nodo manager:
docker swarm join-token manager
3. Unirse a un clúster Swarm
Para agregar nodos adicionales al clúster Swarm, ejecuta el siguiente comando en cada nodo que desees unir:
docker swarm join --token <TOKEN> <IP_DEL_NODO_PRINCIPAL>:<PUERTO>
Reemplaza <TOKEN>
con el token generado en el paso anterior y <IP_DEL_NODO_PRINCIPAL>:<PUERTO>
con la dirección IP y el puerto del nodo principal.
4. Ver el estado del clúster Swarm
Puedes verificar el estado actual del clúster Swarm utilizando el siguiente comando:
docker node ls
Esto mostrará una lista de todos los nodos en el clúster y su estado actual.
5. Crear un servicio en el clúster
Para desplegar una aplicación o servicio en el clúster Swarm, utiliza el siguiente comando:
docker service create --name <NOMBRE_DEL_SERVICIO> <IMAGEN_DEL_CONTENEDOR>
6. Ver servicios en ejecución
Para ver una lista de todos los servicios en ejecución en el clúster, ejecuta el siguiente comando:
docker service ls
Esto mostrará información como el nombre del servicio, el número de réplicas y el estado actual.
7. Escalar servicios
Puedes escalar un servicio para aumentar o disminuir el número de réplicas que se están ejecutando. Utiliza el siguiente comando:
docker service scale <NOMBRE_DEL_SERVICIO>=<NÚMERO_DE_RÉPLICAS>
Reemplaza <NOMBRE_DEL_SERVICIO>
con el nombre del servicio que deseas escalar y <NÚMERO_DE_RÉPLICAS>
con el número deseado de réplicas.
8. Inspeccionar un servicio
Si necesitas obtener información más detallada sobre un servicio específico, puedes usar el siguiente comando:
docker service inspect <NOMBRE_DEL_SERVICIO>
Esto mostrará información detallada, como la configuración del servicio, las réplicas y las restricciones.
Para una visualización más amigable, puedes utilizar la opción “–pretty”
docker service inspect --pretty <NOMBRE_DEL_SERVICIO>
9. Actualizar un servicio
docker service update <NOMBRE_DEL_SERVICIO> --image <NUEVA_IMAGEN_DEL_CONTENEDOR>
Reemplaza <NOMBRE_DEL_SERVICIO>
con el nombre del servicio que deseas actualizar y <NUEVA_IMAGEN_DEL_CONTENEDOR>
con la nueva imagen del contenedor que deseas utilizar.
10. Eliminar un servicio
Si ya no necesitas un servicio en el clúster, puedes eliminarlo utilizando el siguiente comando:
docker service rm <NOMBRE_DEL_SERVICIO>
11. Ver logs de servicio
Puedes ver los registros de un servicio específico utilizando el siguiente comando:
docker service logs <NOMBRE_DEL_SERVICIO>
Esto mostrará los registros generados por las réplicas del servicio.
Para ver los registros en tiempo real, se puede agregar la opción “-f”:
docker service logs -f <NOMBRE_DEL_SERVICIO>
12. Inspeccionar un nodo
Si deseas obtener información detallada sobre un nodo específico en el clúster Swarm, ejecuta el siguiente comando:
docker node inspect <NOMBRE_DEL_NODO>
13. Crear una red en el clúster
Puedes crear una red específica para los servicios en el clúster Swarm utilizando el siguiente comando:
docker network create --driver overlay <NOMBRE_DE_LA_RED>
Reemplaza <NOMBRE_DE_LA_RED>
con el nombre que deseas asignar a la red.
14. Ver redes en el clúster
Para ver una lista de todas las redes en el clúster Swarm, utiliza el siguiente comando:
docker network ls
Esto mostrará las redes disponibles y su estado actual.
15. Detener un clúster Swarm
Si deseas detener todos los servicios y nodos del clúster Swarm, ejecuta el siguiente comando en el nodo principal:
docker swarm leave --force
Esto detendrá y eliminará el clúster Swarm.