Curso Docker
Comandos Docker Swarm: Orquestación de Contenedores
Docker Swarm es una herramienta que permite la orquestación de contenedores. Esto significa que puedes gestionar y distribuir tus contenedores en varios nodos (máquinas) para crear un clúster. Docker Swarm te ayuda a escalar aplicaciones, gestionar su disponibilidad, y controlar el ciclo de vida de los servicios dentro de un clúster de múltiples máquinas.
1. Inicializar Docker Swarm
docker swarm init: Inicializa un nodo en un clúster de Docker Swarm
Este comando convierte tu máquina Docker en un nodo principal (o manager) dentro de un clúster de Docker Swarm. El nodo principal se encarga de gestionar y coordinar los contenedores y servicios que se distribuyen entre otros nodos del clúster.
Ejemplo:
1docker swarm init
Salida esperada:
Swarm initialized: current node (k23b7s8k2...) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-0rnsl5... 192.168.1.2:2377
Esta salida te muestra el comando que usarías para agregar nodos worker al clúster, que ejecutarán las tareas asignadas por el nodo manager.
2. Gestionar Servicios en Docker Swarm
Un servicio en Docker Swarm es una tarea o conjunto de tareas que se ejecutan en el clúster. Por ejemplo, si deseas desplegar una aplicación web o una base de datos, lo harías creando un servicio.
docker service create <opciones>: Crear un nuevo servicio en el clúster
Este comando crea y despliega un nuevo servicio en el clúster. Puedes especificar la imagen de Docker que debe ejecutarse, cuántas réplicas del servicio deseas, puertos a exponer, etc.
Ejemplo:
1docker service create --name web --replicas 3 -p 8080:80 nginx
Esto crea un servicio llamado web que ejecuta la imagen de nginx en 3 réplicas (3 contenedores distribuidos en el clúster). El puerto 80 del contenedor se mapea al puerto 8080 de la máquina anfitriona.
docker service ls: Listar servicios en ejecución en el clúster
Este comando muestra todos los servicios que están actualmente corriendo en el clúster, junto con detalles como el número de réplicas y el estado de cada servicio.
Ejemplo:
1docker service ls
Salida esperada:
ID NAME MODE REPLICAS IMAGE PORTS
kj84jw83kd93 web replicated 3/3 nginx *:8080->80/tcp
Aquí ves que el servicio web está corriendo en modo replicated, con 3 réplicas de nginx activas y el puerto 8080 mapeado al puerto 80 del contenedor.
docker service rm <nombre_servicio>: Eliminar un servicio
Este comando elimina un servicio del clúster. Al hacerlo, todas las réplicas (contenedores) asociadas a ese servicio se detendrán y serán eliminadas.
Ejemplo:
1docker service rm web
Esto elimina el servicio web que creaste anteriormente, deteniendo y eliminando las 3 réplicas de nginx que estaban ejecutándose.
docker service update <nombre_servicio>: Actualizar un servicio (escalabilidad, imagen, etc.)
Este comando permite modificar un servicio que ya está en ejecución, como cambiar el número de réplicas (escalar), actualizar la imagen o cambiar cualquier otra configuración.
Ejemplo:
1docker service update --replicas 5 web
Esto actualiza el servicio web para que ahora tenga 5 réplicas en lugar de 3. Docker Swarm automáticamente escalará el servicio creando 2 nuevos contenedores para alcanzar el nuevo número de réplicas.
docker service ps <nombre_servicio>: Mostrar las tareas asignadas a un servicio
Este comando muestra las tareas o contenedores individuales que están asociados con un servicio, junto con el estado de cada uno. Es útil para ver en qué nodos del clúster se están ejecutando los contenedores y su estado actual.
Ejemplo:
1docker service ps web
Salida esperada:
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE
0k39jf93kf39 web.1 nginx node1 Running Running 5 mins ago
8fj48f48fj20 web.2 nginx node2 Running Running 5 mins ago
l29fsd93kf39 web.3 nginx node3 Running Running 5 mins ago
Aquí puedes ver las 3 tareas (contenedores) del servicio web, y dónde están ejecutándose (en los nodos node1, node2, y node3).
Resumen de los Comandos
docker swarm init: Inicializa un nodo como manager en un clúster de Docker Swarm.docker service create: Crea un nuevo servicio en el clúster con las opciones que definas, como la imagen, las réplicas, y los puertos.docker service ls: Lista todos los servicios activos en el clúster.docker service rm: Elimina un servicio del clúster.docker service update: Actualiza un servicio en ejecución (como cambiar el número de réplicas).docker service ps: Muestra las tareas (contenedores) que se están ejecutando para un servicio, con información sobre en qué nodo están y su estado.
Con estos comandos, puedes gestionar aplicaciones distribuidas en múltiples nodos dentro de un clúster de Docker Swarm de manera eficiente.
- Loading...
Convierte tu máquina Docker en un nodo principal (o manager) dentro de un clúster de Docker Swarm
Loading...Crea un servicio en Docker Swarm utilizando la imagen oficial de NGINX con 5 réplicas
- Indica que quieres que el servicio ejecute 5 réplicas (contenedores)
- El servicio se llama
serverWeb - El puerto 4000 del host se mapea al puerto 80 del contenedor
Loading...