Cómo funciona docker service ps internamente
Clase 9 de 24 • Curso de Swarm
Contenido del curso
Primeros pasos
- 6

Instalación de Docker en Mac, Ubuntu y Windows
10:13 min - 7

Cómo iniciar Docker Swarm en tu máquina
08:35 min - 8

Creando servicios en Docker Swarm
05:36 min - 9

Cómo funciona docker service ps internamente
Viendo ahora - 10

Qué es Play with Docker para practicar
06:27 min - 11

Creando un Docker Swarm multinodo real
06:15 min
Administrando Servicios
Swarm avanzado
- 15

Cómo Docker Swarm enruta tráfico sin perder peticiones
06:56 min - 16

Docker Swarm constraints: dónde correr cada tarea
09:04 min - 17

Cómo drenar nodos en Docker Swarm sin downtime
07:56 min - 18

Redes Overlay en Docker Swarm: Comunicación entre Servicios
13:39 min - 19

Docker Stack: automatiza despliegues multinodo
10:49 min - 20

Implementación de Reverse Proxy con Traefik en Docker Swarm
16:49 min
Swarm productivo
Conclusiones
Orquestar con Docker Swarm es más claro cuando entiendes cómo se crean los servicios, cómo se planifican las tareas y cómo leer su estado en tiempo real. Aquí verás, paso a paso, cómo usar docker service ps, docker service inspect y docker service logs para trabajar con confianza y sin sorpresas.
¿Cómo funciona Docker Swarm por dentro para crear y ejecutar servicios?
Docker Swarm usa un modelo de planificación basado en scheduling y en el concepto de estado deseado. El manager recibe el pedido, crea el objeto servicio y define tareas que luego asigna a nodos (por ejemplo, un worker). Cada tarea termina ejecutándose como contenedor.
- El cliente de Docker envía docker service create al manager del clúster.
- El manager valida y crea el servicio: define cuántas tareas tendrá.
- Asigna una IP virtual para enrutar dentro del Swarm.
- Selecciona el nodo destino según restricciones de recursos.
- El nodo recibe la descripción de la tarea: imagen y comando.
- Prepara la tarea: descarga la imagen y crea el contenedor.
- Ejecuta el contenedor y Swarm mantiene el estado en running.
Ejemplo de creación y seguimiento inmediato:
docker service create --name pinger alpine:latest ping google.com
docker service ps pinger
Cuando todo se alinea, Swarm indica que los servicios han convergido: el estado actual coincide con el estado deseado.
¿Qué muestran service ps, service inspect y service logs?
A diferencia de docker ps (que lista contenedores), docker service ps muestra tareas: es el nivel intermedio entre servicio y contenedor. Verás imagen, nodo, y dos campos clave: Desired State y Current State.
docker service ps pinger
¿Qué es el desired state y el current state?
- Desired State: lo que el manager espera (por ejemplo, running o shutdown).
- Current State: lo que está ocurriendo ahora.
Al crear un servicio puede verse preparing mientras se descarga la imagen y se inicializa. Al estabilizarse, ambos estados coinciden en running.
¿Para qué sirve el inspect y el pretty?
Con docker service inspect verás un JSON completo del servicio; con --pretty, un resumen legible.
docker service inspect pinger
# Resumen formateado
docker service inspect --pretty pinger
Puntos clave del inspect: - Imagen: alpine:latest con su digest inmutable. El digest identifica la imagen de forma única más allá del tag. - Comando: ping google.com. - TaskTemplate: la plantilla (template) de la tarea que el manager envía a los nodos para construir contenedores de forma consistente.
Para una vista rápida usa --pretty; para detalle fino, el JSON crudo.
¿Por qué ver logs en Swarm?
Con docker service logs puedes seguir la salida de tus servicios. La opción -f (follow) envía nuevas entradas en tiempo real.
docker service logs -f pinger
Esto funciona bien cuando tu proceso escribe al standard output (modelo de doce factores). Si la app sólo escribe a archivo, no verás logs aquí.
¿Cómo gestionar el ciclo de vida de un servicio en Swarm?
Crear, observar y eliminar servicios requiere unos pocos comandos. Swarm respeta el estado deseado y aplica cambios de forma segura.
- Crear servicio.
docker service create --name pinger alpine:latest ping google.com
- Ver estado de tareas y nodo donde corre.
docker service ps pinger
- Inspeccionar la configuración (imagen, task template, comando).
docker service inspect pinger
- Seguir la salida en vivo con follow.
docker service logs -f pinger
- Eliminar el servicio respetando el estado deseado.
docker service rm pinger
Tras eliminar, el contenedor puede quedar unos segundos hasta recibir la señal y apagarse. Swarm lleva el servicio a shutdown en cuanto es posible.
¿Tienes dudas o un caso real que quieras probar con múltiples nodos, manager y worker? Cuéntalo y sumemos ideas para mejorar tu orquestación con Docker Swarm.