Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

297
Vistas
¿Cómo compruebo que un host docker está en modo enjambre?

Después de ejecutar esto;

 eval $(docker-machine env mymachine)

¿Cómo verifico si el demonio de la ventana acoplable en mymachine es un administrador de enjambres?

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Para verificar la membresía general del enjambre, mi método preferido es usar la salida formateada de docker info . Los posibles valores de esto son actualmente inactivo, pendiente, activo, bloqueado y error :

 case "$(docker info --format '{{.Swarm.LocalNodeState}}')" in inactive) echo "Node is not in a swarm cluster";; pending) echo "Node is not in a swarm cluster";; active) echo "Node is in a swarm cluster";; locked) echo "Node is in a locked swarm cluster";; error) echo "Node is in an error state";; *) echo "Unknown state $(docker info --format '{{.Swarm.LocalNodeState}}')";; esac

Para verificar el estado del administrador, en lugar de solo un nodo en un clúster, el campo que desea es .Swarm.ControlAvailable :

 docker info --format '{{.Swarm.ControlAvailable}}'

Eso generará "verdadero" para los administradores y "falso" para cualquier nodo que sea un trabajador o no en un enjambre.

Para identificar los nodos trabajadores, puede unirse a dos:

 if [ "$(docker info --format '{{.Swarm.LocalNodeState}}')" = "active" \ -a "$(docker info --format '{{.Swarm.ControlAvailable}}')" = "false" ]; then echo "node is a worker" else echo "node is not a worker" fi
about 4 years ago · Santiago Trujillo Denunciar

0

También puede usar la docker info para ver el resultado de la propiedad Swarm ( inactive o active ).

Por ejemplo:

 function isSwarmNode(){ if [ "$(docker info | grep Swarm | sed 's/Swarm: //g')" == "inactive" ]; then echo false; else echo true; fi }
about 4 years ago · Santiago Trujillo Denunciar

0

No tengo un nodo de enjambre a mano en este momento, pero parece que podría simplemente ejecutar algo como docker node ls . Al apuntar a un demonio docker que no está en el nodo de enjambre, eso da como resultado:

 Error response from daemon: This node is not a swarm manager. Use "docker swarm init" or "docker swarm join" to connect this node to swarm and try again.

Y devuelve un código de salida distinto de cero

 $ echo $? 1

Así que la prueba sería algo como:

 if docker node ls > /dev/null 2>&1; then echo this is a swarm node else echo this is a standalone node fi
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda