gpt4 book ai didi

docker - 如何检查 docker 主机是否处于 swarm 模式?

转载 作者:IT老高 更新时间:2023-10-28 12:45:37 27 4
gpt4 key购买 nike

执行此操作后;

eval $(docker-machine env mymachine)

如何检查 mymachine 上的 docker daemon 是否为 swarm manager?

最佳答案

要检查一般的 swarm 成员资格,我首选的方法是使用来自 docker info 的格式化输出。它的可能值为currently inactive, pending, active, locked, and 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

要检查管理器状态,而不仅仅是集群中的一个节点,您需要的字段是 .Swarm.ControlAvailable:

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

这将为管理器输出“true”,为任何作为工作节点或不在集群中的节点输出“false”。

要识别工作节点,您可以加入两个:

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

关于docker - 如何检查 docker 主机是否处于 swarm 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43053013/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com