首页 > 解决方案 > docker swarm 抛出错误“swarm 已经是 swarm 的一部分”

问题描述

当我将新节点加入现有节点时,docker swarm 抛出错误“swarm already part of swarm”

我在本地机器上运行 docker swarm 并尝试初始化 swarm 并很好地执行,但是当我尝试将新的工作程序或节点添加到现有的管理器节点时,它会抛出一个错误,比如 swarm 已经是节点你必须离开节点。$docker swarm init Swarm 已初始化:当前节点 (fn405d6jtk8mxbpvdrftr0np1) 现在是管理器。

要将工作人员添加到此集群,请运行以下命令:

docker swarm join --token SWMTKN-1-5tyw8ux789wpa7yyt75qbilb669tiw53pxriyxu48niznpmaka-7u63l4hom3h60myvtyw8p1mcj 192.168.2.219:2377

要将管理器添加到此 swarm,请运行“docker swarm join-token manager”并按照说明进行操作。

=>再次使用上面的令牌作为工作人员并加入然后我会出现这样的错误..

$    docker swarm join --token SWMTKN-1-5tyw8ux789wpa7yyt75qbilb669tiw53pxriyxu48niznpmaka-7u63l4hom3h60myvtyw8p1mcj 192.168.2.219:2377

Error response from daemon: This node is already part of a swarm. Use "docker swarm leave" to leave this swarm and join another one.

标签: pythondockerdocker-swarm

解决方案


Docker swarm是一个或多个机器(物理或虚拟,称为节点)的集合,可以将容器作为服务运行。swarm 中的节点可以是管理者或工作者。只有在管理器节点上,您才能查看/修改集群状态。工作节点只运行容器。为了在 swarm 中运行容器,你必须创建一个服务;该服务将有零个或多个容器,具体取决于scale您为服务设置的容器。

要创建一个 swarm,请在docker swarm init将成为管理器节点的机器上运行。然后,在您拥有的其他机器docker swarm join上运行命令以将它们添加到集群中。您不能将已经在 swarm 中的机器添加到 swarm 中。在您的情况下,您尝试将创建 swarm 的管理器添加到 swarm 中。

当您启动一个 swarm(使用docker swarm init)时,您启动该 swarm 的机器已经连接到该 swarm,您无需执行任何其他操作即可将其连接到该 swarm。

启动 swarm 后,您可以(并且应该)将其他机器添加为管理器或工作器。

在创建 swarm 后的任何时候,您都可以创建服务和/或网络部署堆栈


推荐阅读