Compartir comentarios
Las respuestas se generan en base a la documentación.

docker service ps

DescripciónLista las tareas de uno o más servicios
Usodocker service ps [OPTIONS] SERVICE [SERVICE...]

Swarm Este comando funciona con el orquestador de Swarm.

Descripción

Lista las tareas que se están ejecutando como parte de los servicios especificados.

Note

Este es un comando de gestión de clústeres y debe ejecutarse en un nodo administrador de Swarm (manager node). Para obtener más información sobre administradores y trabajadores, consulta la sección del modo Swarm en la documentación.

Opciones

OpciónPredeterminadoDescripción
-f, --filterFiltra la salida según las condiciones proporcionadas
--formatMuestra las tareas con un diseño mejorado utilizando una plantilla Go
--no-resolveNo asociar los IDs a los nombres
--no-truncNo truncar la salida
-q, --quietSolo muestra los IDs de las tareas

Ejemplos

Lista las tareas que forman parte de un servicio

El siguiente comando muestra todas las tareas que forman parte del servicio redis:

$ docker service ps redis

ID             NAME      IMAGE        NODE      DESIRED STATE  CURRENT STATE          ERROR  PORTS
0qihejybwf1x   redis.1   redis:7.4.0  manager1  Running        Running 8 seconds
bk658fpbex0d   redis.2   redis:7.4.0  worker2   Running        Running 9 seconds
5ls5s5fldaqg   redis.3   redis:7.4.0  worker1   Running        Running 9 seconds
8ryt076polmc   redis.4   redis:7.4.0  worker1   Running        Running 9 seconds
1x0v8yomsncd   redis.5   redis:7.4.0  manager1  Running        Running 8 seconds
71v7je3el7rr   redis.6   redis:7.4.0  worker2   Running        Running 9 seconds
4l3zm9b7tfr7   redis.7   redis:7.4.0  worker2   Running        Running 9 seconds
9tfpyixiy2i7   redis.8   redis:7.4.0  worker1   Running        Running 9 seconds
3w1wu13yupln   redis.9   redis:7.4.0  manager1  Running        Running 8 seconds
8eaxrb2fqpbn   redis.10  redis:7.4.0  manager1  Running        Running 8 seconds

Además de las tareas en ejecución, la salida también muestra el historial de tareas. Por ejemplo, después de actualizar el servicio para utilizar la imagen redis:7.4.1, la salida podría verse así:

$ docker service ps redis

ID            NAME         IMAGE        NODE      DESIRED STATE  CURRENT STATE                   ERROR  PORTS
50qe8lfnxaxk  redis.1      redis:7.4.1  manager1  Running        Running 6 seconds ago
ky2re9oz86r9   \_ redis.1  redis:7.4.0  manager1  Shutdown       Shutdown 8 seconds ago
3s46te2nzl4i  redis.2      redis:7.4.1  worker2   Running        Running less than a second ago
nvjljf7rmor4   \_ redis.2  redis:7.4.1  worker2   Shutdown       Rejected 23 seconds ago        "No such image: redis@sha256:6…"
vtiuz2fpc0yb   \_ redis.2  redis:7.4.0  worker2   Shutdown       Shutdown 1 second ago
jnarweeha8x4  redis.3      redis:7.4.1  worker1   Running        Running 3 seconds ago
vs448yca2nz4   \_ redis.3  redis:7.4.0  worker1   Shutdown       Shutdown 4 seconds ago
jf1i992619ir  redis.4      redis:7.4.1  worker1   Running        Running 10 seconds ago
blkttv7zs8ee   \_ redis.4  redis:7.4.0  worker1   Shutdown       Shutdown 11 seconds ago

El número de elementos en el historial de tareas está determinado por la opción --task-history-limit que se configuró al inicializar el swarm. Puedes cambiar el límite de retención del historial de tareas utilizando el comando docker swarm update.

Al desplegar un servicio, docker resuelve el digest para la imagen del servicio, y fija el servicio a ese digest. El digest no se muestra de forma predeterminada, pero se imprime si se utiliza la opción --no-trunc. La opción --no-trunc también muestra el ID de la tarea sin truncar, así como los mensajes de error, tal como se puede ver en el siguiente ejemplo:

$ docker service ps --no-trunc redis

ID                          NAME         IMAGE                                                                                NODE      DESIRED STATE  CURRENT STATE            ERROR                                                                                           PORTS
50qe8lfnxaxksi9w2a704wkp7   redis.1      redis:7.4.1@sha256:6a692a76c2081888b589e26e6ec835743119fe453d67ecf03df7de5b73d69842  manager1  Running        Running 5 minutes ago
ky2re9oz86r9556i2szb8a8af   \_ redis.1   redis:7.4.0@sha256:f8829e00d95672c48c60f468329d6693c4bdd28d1f057e755f8ba8b40008682e  worker2   Shutdown       Shutdown 5 minutes ago
bk658fpbex0d57cqcwoe3jthu   redis.2      redis:7.4.1@sha256:6a692a76c2081888b589e26e6ec835743119fe453d67ecf03df7de5b73d69842  worker2   Running        Running 5 seconds
nvjljf7rmor4htv7l8rwcx7i7   \_ redis.2   redis:7.4.1@sha256:6a692a76c2081888b589e26e6ec835743119fe453d67ecf03df7de5b73d69842  worker2   Shutdown       Rejected 5 minutes ago   "No such image: redis@sha256:6a692a76c2081888b589e26e6ec835743119fe453d67ecf03df7de5b73d69842"

Filtrado (--filter)

El formato del flag de filtrado (-f o --filter) es un par clave=valor. Si hay más de un filtro, pasa múltiples flags (por ejemplo, --filter "foo=bar" --filter "bif=baz"). Múltiples flags de filtrado se combinan como un filtro OR. Por ejemplo, -f name=redis.1 -f name=redis.7 devuelve tanto las tareas de redis.1 como las de redis.7.

Los filtros admitidos actualmente son:

id

El filtro id coincide con todo el ID de una tarea o con su prefijo.

$ docker service ps -f "id=8" redis

ID             NAME      IMAGE        NODE      DESIRED STATE  CURRENT STATE      ERROR  PORTS
8ryt076polmc   redis.4   redis:7.4.1  worker1   Running        Running 9 seconds
8eaxrb2fqpbn   redis.10  redis:7.4.1  manager1  Running        Running 8 seconds

name

El filtro name coincide con los nombres de las tareas.

$ docker service ps -f "name=redis.1" redis

ID            NAME     IMAGE        NODE      DESIRED STATE  CURRENT STATE      ERROR  PORTS
qihejybwf1x5  redis.1  redis:7.4.1  manager1  Running        Running 8 seconds

node

El filtro node coincide con un nombre de nodo o un ID de nodo.

$ docker service ps -f "node=manager1" redis

ID            NAME      IMAGE        NODE      DESIRED STATE  CURRENT STATE      ERROR  PORTS
0qihejybwf1x  redis.1   redis:7.4.1  manager1  Running        Running 8 seconds
1x0v8yomsncd  redis.5   redis:7.4.1  manager1  Running        Running 8 seconds
3w1wu13yupln  redis.9   redis:7.4.1  manager1  Running        Running 8 seconds
8eaxrb2fqpbn  redis.10  redis:7.4.1  manager1  Running        Running 8 seconds

desired-state

El filtro desired-state puede tomar los valores running, shutdown o accepted.

Dar formato a la salida (--format)

Las opciones de formato (--format) muestran la salida de las tareas de forma más amigable utilizando una plantilla Go.

A continuación se listan los marcadores de posición válidos para la plantilla Go:

Marcador de posiciónDescripción
.IDID de la tarea
.NameNombre de la tarea
.ImageImagen de la tarea
.NodeID del nodo
.DesiredStateEstado deseado de la tarea (running, shutdown o accepted)
.CurrentStateEstado actual de la tarea
.ErrorError
.PortsPuertos publicados de la tarea

Cuando se utiliza la opción --format, el comando service ps mostrará los datos exactamente como los declara la plantilla o, cuando se utiliza la directiva table, también incluirá los encabezados de las columnas.

El siguiente ejemplo utiliza una plantilla sin encabezados y muestra las entradas de Name y Image separadas por dos puntos (:) para todas las tareas:

$ docker service ps --format "{{.Name}}: {{.Image}}" top

top.1: busybox
top.2: busybox
top.3: busybox