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

docker node ls

DescripciónLista los nodos del swarm
Usodocker node ls [OPTIONS]
Alias
docker node list

Swarm Este comando funciona con el orquestador de Swarm.

Descripción

Lista todos los nodos que conoce el administrador de Docker Swarm. Puedes filtrar la salida usando la opción -f o --filter. Consulta la sección de filtrado para obtener más información sobre las opciones de filtro disponibles.

Note

Este es un comando de administración de clústeres y debe ejecutarse en un nodo administrador de swarm. Para obtener información sobre los administradores y los nodos de trabajo (workers), 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 de Go proporcionada
'json': Imprime en formato JSON
'TEMPLATE': Imprime la salida utilizando la plantilla de Go proporcionada.
Consulta https://docs-docker.esdocu.com/go/formatting/ para obtener más información sobre el formato de salida con plantillas
-q, --quietSolo muestra los IDs

Ejemplos

$ docker node ls

ID                           HOSTNAME        STATUS  AVAILABILITY  MANAGER STATUS
1bcef6utixb0l0ca7gxuivsj0    swarm-worker2   Ready   Active
38ciaotwjuritcdtn9npbnkuz    swarm-worker1   Ready   Active
e216jshn25ckzbvmwlnh5jr3g *  swarm-manager1  Ready   Active        Leader
Note

En el ejemplo de salida anterior, hay una columna oculta de .Self que indica si el nodo es el mismo que el demonio docker actual. Un * (por ejemplo, e216jshn25ckzbvmwlnh5jr3g *) significa que este nodo es el demonio docker actual.

Filtrado (--filter)

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

Los filtros admitidos actualmente son:

id

El filtro id coincide con todo o parte del ID de un nodo.

$ docker node ls -f id=1

ID                         HOSTNAME       STATUS  AVAILABILITY  MANAGER STATUS
1bcef6utixb0l0ca7gxuivsj0  swarm-worker2  Ready   Active

label

El filtro label coincide con nodos según las etiquetas del motor (engine labels) y por la presencia de una label sola o una label y un valor. Las etiquetas del motor se configuran en la configuración del demonio. Para filtrar por etiquetas de node de Swarm, usa node.label en su lugar.

El siguiente filtro coincide con nodos que tienen la etiqueta foo independientemente de su valor.

$ docker node ls -f "label=foo"

ID                         HOSTNAME       STATUS  AVAILABILITY  MANAGER STATUS
1bcef6utixb0l0ca7gxuivsj0  swarm-worker2  Ready   Active

node.label

El filtro node.label coincide con nodos basándose en las etiquetas del nodo y por la presencia de una node.label sola o una node.label y un valor.

El siguiente filtro actualiza los nodos para que tengan una etiqueta de nodo region:

$ docker node update --label-add region=region-a swarm-test-01
$ docker node update --label-add region=region-a swarm-test-02
$ docker node update --label-add region=region-b swarm-test-03
$ docker node update --label-add region=region-b swarm-test-04

Muestra todos los nodos que tienen establecida una etiqueta de nodo region:

$ docker node ls --filter node.label=region

ID                            HOSTNAME        STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
yg550ettvsjn6g6t840iaiwgb *   swarm-test-01   Ready     Active         Leader           23.0.3
2lm9w9kbepgvkzkkeyku40e65     swarm-test-02   Ready     Active         Reachable        23.0.3
hc0pu7ntc7s4uvj4pv7z7pz15     swarm-test-03   Ready     Active         Reachable        23.0.3
n41b2cijmhifxxvz56vwrs12q     swarm-test-04   Ready     Active                          23.0.3

Muestra todos los nodos que tienen una etiqueta de nodo region con el valor region-a:

$ docker node ls --filter node.label=region=region-a

ID                            HOSTNAME        STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
yg550ettvsjn6g6t840iaiwgb *   swarm-test-01   Ready     Active         Leader           23.0.3
2lm9w9kbepgvkzkkeyku40e65     swarm-test-02   Ready     Active         Reachable        23.0.3

membership

El filtro membership coincide con nodos basándose en la presencia de una membership y un valor accepted o pending.

El siguiente filtro coincide con nodos cuya membership sea accepted.

$ docker node ls -f "membership=accepted"

ID                           HOSTNAME        STATUS  AVAILABILITY  MANAGER STATUS
1bcef6utixb0l0ca7gxuivsj0    swarm-worker2   Ready   Active
38ciaotwjuritcdtn9npbnkuz    swarm-worker1   Ready   Active

name

El filtro name coincide con todo o parte del nombre de host (hostname) de un nodo.

El siguiente filtro coincide con los nodos que tienen un nombre igual a la cadena swarm-master.

$ docker node ls -f name=swarm-manager1

ID                           HOSTNAME        STATUS  AVAILABILITY  MANAGER STATUS
e216jshn25ckzbvmwlnh5jr3g *  swarm-manager1  Ready   Active        Leader

role

El filtro role coincide con nodos según la presencia de un role y un valor worker o manager.

El siguiente filtro coincide con nodos con el rol manager.

$ docker node ls -f "role=manager"

ID                           HOSTNAME        STATUS  AVAILABILITY  MANAGER STATUS
e216jshn25ckzbvmwlnh5jr3g *  swarm-manager1  Ready   Active        Leader

Dar formato a la salida (--format)

Las opciones de formato (--format) imprimen la salida de los nodos utilizando una plantilla de Go.

Los marcadores de posición válidos para la plantilla de Go se enumeran a continuación:

Marcador de posiciónDescripción
.IDID del nodo
.SelfNodo del demonio (true/false, true indica que el nodo es el mismo que el demonio docker actual)
.HostnameNombre de host del nodo
.StatusEstado del nodo
.AvailabilityDisponibilidad del nodo ("active", "pause", o "drain")
.ManagerStatusEstado de administrador del nodo
.TLSStatusEstado TLS del nodo ("Ready", o "Needs Rotation" si tiene un certificado TLS firmado por una CA antigua)
.EngineVersionVersión del motor (Engine)

Cuando se utiliza la opción --format, el comando node 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 los campos ID, Hostname y TLS Status separados por dos puntos (:) para todos los nodos:

$ docker node ls --format "{{.ID}}: {{.Hostname}} {{.TLSStatus}}"

e216jshn25ckzbvmwlnh5jr3g: swarm-manager1 Ready
35o6tiywb700jesrt3dmllaza: swarm-worker1 Needs Rotation

Para listar todos los nodos en formato JSON, usa la directiva json:

$ docker node ls --format json
{"Availability":"Active","EngineVersion":"23.0.3","Hostname":"docker-desktop","ID":"k8f4w7qtzpj5sqzclcqafw35g","ManagerStatus":"Leader","Self":true,"Status":"Ready","TLSStatus":"Ready"}