docker node ls
| Descripción | Lista los nodos del swarm |
|---|---|
| Uso | docker 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.
NoteEste 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ón | Predeterminado | Descripción |
|---|---|---|
-f, --filter | Filtra la salida según las condiciones proporcionadas | |
--format | Da 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, --quiet | Solo 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
NoteEn el ejemplo de salida anterior, hay una columna oculta de
.Selfque 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ón | Descripción |
|---|---|
.ID | ID del nodo |
.Self | Nodo del demonio (true/false, true indica que el nodo es el mismo que el demonio docker actual) |
.Hostname | Nombre de host del nodo |
.Status | Estado del nodo |
.Availability | Disponibilidad del nodo ("active", "pause", o "drain") |
.ManagerStatus | Estado de administrador del nodo |
.TLSStatus | Estado TLS del nodo ("Ready", o "Needs Rotation" si tiene un certificado TLS firmado por una CA antigua) |
.EngineVersion | Versió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"}