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

docker service ls

DescripciónLista los servicios
Usodocker service ls [OPTIONS]
Alias
docker service list

Swarm Este comando funciona con el orquestador de Swarm.

Descripción

Este comando lista los servicios que se están ejecutando en el swarm.

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
--formatDa formato a la salida utilizando una plantilla personalizada:
'table': Imprime la salida en formato de tabla con encabezados de columna (predeterminado)
'table TEMPLATE': Imprime la salida en formato de tabla utilizando la plantilla Go especificada
'json': Imprime en formato JSON
'TEMPLATE': Imprime la salida utilizando la plantilla Go especificada.
Consulta https://docs-docker.esdocu.com/go/formatting/ para obtener más información sobre cómo dar formato a la salida con plantillas
-q, --quietSolo muestra los IDs

Ejemplos

En un nodo administrador:

$ docker service ls

ID            NAME      MODE            REPLICAS             IMAGE
c8wgl7q4ndfd  frontend  replicated      5/5                  nginx:alpine
dmu1ept4cxcf  redis     replicated      3/3                  redis:7.4.1
iwe3278osahj  mongo     global          7/7                  mongo:3.3
hh08h9uu8uwr  job       replicated-job  1/1 (3/5 completed)  nginx:latest

La columna REPLICAS muestra tanto el número real como el deseado de tareas para el servicio. Si el servicio está en replicated-job o global-job, mostrará además el estado de finalización del trabajo como tareas completadas sobre el total de tareas que ejecutará el trabajo.

Filtrado (--filter)

El formato del flag de filtrado (-f o --filter) es "clave=valor". Si hay más de un filtro, pasa múltiples flags (por ejemplo, --filter "foo=bar" --filter "bif=baz").

Los filtros admitidos actualmente son:

id

El filtro id coincide con todo el ID de un servicio o con su prefijo.

El siguiente filtro coincide con los servicios con un ID que comienza con 0bcjw:

$ docker service ls -f "id=0bcjw"
ID            NAME   MODE        REPLICAS  IMAGE
0bcjwfh8ychr  redis  replicated  1/1       redis:7.4.1

label

El filtro label coincide con los servicios según la presencia únicamente de la etiqueta (label) o de la etiqueta y su valor.

El siguiente filtro coincide con todos los servicios que tengan la etiqueta project, independientemente de su valor:

$ docker service ls --filter label=project
ID            NAME       MODE        REPLICAS  IMAGE
01sl1rp6nj5u  frontend2  replicated  1/1       nginx:alpine
36xvvwwauej0  frontend   replicated  5/5       nginx:alpine
74nzcxxjv6fq  backend    replicated  3/3       redis:7.4.1

El siguiente filtro coincide solo con aquellos servicios que tengan la etiqueta project con el valor project-a.

$ docker service ls --filter label=project=project-a
ID            NAME      MODE        REPLICAS  IMAGE
36xvvwwauej0  frontend  replicated  5/5       nginx:alpine
74nzcxxjv6fq  backend   replicated  3/3       redis:7.4.1

mode

El filtro mode coincide con el modo (ya sea replicated o global) de un servicio.

El siguiente filtro coincide solo con los servicios globales (global).

$ docker service ls --filter mode=global
ID                  NAME                MODE                REPLICAS            IMAGE
w7y0v2yrn620        top                 global              1/1                 busybox

name

El filtro name coincide con todo el nombre del servicio o con su prefijo.

El siguiente filtro coincide con los servicios cuyo nombre comienza con redis.

$ docker service ls --filter name=redis
ID            NAME   MODE        REPLICAS  IMAGE
0bcjwfh8ychr  redis  replicated  1/1       redis:7.4.1

Dar formato a la salida (--format)

Las opciones de formato (--format) muestran la salida de los servicios 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 del servicio
.NameNombre del servicio
.ModeModo de servicio (replicated, global)
.ReplicasRéplicas del servicio
.ImageImagen del servicio
.PortsPuertos del servicio publicados en modo ingress

Cuando se utiliza la opción --format, el comando service ls 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 ID, Mode y Replicas separadas por dos puntos (:) para todos los servicios:

$ docker service ls --format "{{.ID}}: {{.Mode}} {{.Replicas}}"

0zmvwuiu3vue: replicated 10/10
fm6uf97exkul: global 5/5

Para listar todos los servicios en formato JSON, utiliza la directiva json:

$ docker service ls --format json
{"ID":"ssniordqolsi","Image":"hello-world:latest","Mode":"replicated","Name":"hello","Ports":"","Replicas":"0/1"}