Python docker swarm抛出了一个错误;swarm已经是swarm的一部分了”; docker swarm在我将新节点加入现有节点时抛出错误“swarm已经是swarm的一部分”
我在本地机器上运行docker swarm,并尝试初始化swarm并得到很好的执行,但当我尝试将新的工作者或节点添加到现有的manager节点时,它会抛出一个错误,如swarm已经是节点的一部分,您必须离开节点。 $docker swarm init Swarm已初始化:当前节点(FN405D6JTK8MbPVDRFTR0NP1)现在是一个管理器 要将工作进程添加到此群,请运行以下命令:Python docker swarm抛出了一个错误;swarm已经是swarm的一部分了”; docker swarm在我将新节点加入现有节点时抛出错误“swarm已经是swarm的一部分”,python,docker,docker-swarm,Python,Docker,Docker Swarm,我在本地机器上运行docker swarm,并尝试初始化swarm并得到很好的执行,但当我尝试将新的工作者或节点添加到现有的manager节点时,它会抛出一个错误,如swarm已经是节点的一部分,您必须离开节点。 $docker swarm init Swarm已初始化:当前节点(FN405D6JTK8MbPVDRFTR0NP1)现在是一个管理器 要将工作进程添加到此群,请运行以下命令: docker swarm join --token SWMTKN-1-5tyw8ux789wpa7yyt75
docker swarm join --token SWMTKN-1-5tyw8ux789wpa7yyt75qbilb669tiw53pxriyxu48niznpmaka-7u63l4hom3h60myvtyw8p1mcj 192.168.2.219:2377
要将管理器添加到此swarm,请运行“docker swarm加入令牌管理器”并按照说明操作
=>我再次使用上面的令牌作为工作者并加入,然后我会像这样出错
$ 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.
是一个或多个计算机(物理或虚拟,称为节点)的集合,可以将容器作为服务运行。群中的节点可以是管理者或工作者。只有在管理器节点上,才能查看/修改swarm状态。工作节点仅运行容器。为了在swarm中运行容器,您必须创建一个服务;该服务将具有零个或多个容器,具体取决于您为该服务设置的比例
要创建swarm,请在将成为manager节点的计算机上运行docker swarm init
。然后,在您拥有的其他机器上运行docker swarm join
命令,以便将它们添加到swarm。您不能向群中添加已在群中的机器。在您的案例中,您尝试将创建群的经理添加到群中
当您启动群时(使用docker swarm init
),启动群的机器已连接到群,您无需执行任何其他操作即可将其连接到群
启动swarm后,您可以(也应该)添加其他机器作为管理者或工作者
在创建swarm后的任何时候,您都可以和/或。您运行的节点docker swarm init
自动成为swarm Manager。创建这些加入令牌是为了向swarm添加新节点,以确保您拥有一个尽可能具有弹性的高可用性环境
根据我上面读到的评论,您确认您正在运行docker swarm init
的节点上运行worker join令牌。我建议你仔细阅读和的基础知识 我认为您对worker使用了相同的管理器节点,我认为这会出错。您可以作为工作节点加入单独的节点(可以是虚拟节点)
键入docker信息并查看swarm状态,您可以找到swarm的状态
从工作节点(不同节点)开始,如果您面对“此节点已经是群的一部分”,您应该通过“docker swarm leave--force”离开群。然后再次尝试连接。按照步骤将节点添加到群集
让我们有1个主节点1和3个从节点
$ docker-machine create -d virtualbox master1
$ docker-machine create -d virtualbox slave1
$ docker-machine create -d virtualbox slave2
$ docker-machine create -d virtualbox slave3
现在ssh到master1
$ docker ssh master1
现在以master1为先导初始化swarm集群
$ docker swarm --init <master1-ip> // get the ip as $ docker-machine ip master1
$ exit
上面的命令是,如果你知道哪些节点已经是swarm的一部分,
离开蜂群
$ docker swarm leave --force
我曾经遇到过一个类似的问题,我有一个从节点,它是docker swarm的一部分,然后我的节点机器重新启动,之后我尝试将同一个节点再次添加回swarm,它给了我以下错误
我不得不使用docker swarm离开这个节点,然后我再次添加了它,它工作得很好
错误:-
[######@slave ~]$ docker swarm join --token SWMTKN-1-3nvdabrgv2sg03j9u3ww5or8ujamztqv0tihzo9ip26ewtc0vq-dw5ah2sj4nwbtuvd7lmpecjzp 192.168.xxx.xxx: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.
决议:-
[#####n@slave ~]$ docker swarm leave
您是在同一节点(管理器)上还是在不同节点上运行docker swarm join
命令?在同一节点上。但是不可能/逻辑地将同一节点(或vm)添加到同一个swarm。您需要有其他节点或虚拟机(vm)并添加它们。一旦我们启动swarm,然后我们有两个选择,要么我们可以连接该节点作为管理者或工作者,使用相同的连接令牌,但当我尝试其中任何一个节点时,它会抛出错误。例如,您可以通过启动docker swarm init命令在终端上进行尝试。我已经尝试了很多时间,我对这方面还不熟悉,因此我无法获得正确的想法。
$ docker swarm leave --force
[######@slave ~]$ docker swarm join --token SWMTKN-1-3nvdabrgv2sg03j9u3ww5or8ujamztqv0tihzo9ip26ewtc0vq-dw5ah2sj4nwbtuvd7lmpecjzp 192.168.xxx.xxx: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.
[#####n@slave ~]$ docker swarm leave