我目前有三个主机(docker1、docker2和docker3)没有使用Docker设置,每个主机都运行v1.12-rc4 Docker守护进程。
我在docker1上运行docker1,它会打印一个docker swarm join命令,在docker2和docker3上运行。此时,在每个主机上运行docker info包含Swarm: active行。
正是在这一点上,这种行为似乎与我以前使用独立的群集容器时所得到的不同。特别是,运行docker network ls只会向我展示本地主机上的网络,当尝试创建覆盖网络时,工作节点似乎不知道它(即它不会出现在它们的docker network ls上)。
我觉得我错过了一些重要的信息,有关工作的群集模式,而不是群集容器。
在获得覆盖网络功能的同时,在Docker 1.12上设置这样一个没有码头机器的集群的正确方法是什么?
发布于 2016-07-18 08:16:39
当我第一次开始使用它时,我也认为这是一个问题。
这在1.12rc4中的工作方式有点不同--当您将一个容器部署到带有该网络的集群中时,它也应该在其他节点上创建网络。
希望这能有所帮助!
发布于 2016-07-18 07:27:14
问题
您使用的是docker命令(用于与本地主机Docker守护进程通信),而不是"swarm“命令(用于与群集主程序通信)。
解决方案
这取决于您用来启动群集的命令。完整的一步一步的教程(包括如何部署覆盖网络的详细信息)将在this answer上完成。我相信读这篇文章会帮你的;)
发布于 2016-11-24 22:46:54
在网络范围为swarm的情况下,网络只在需要的基础上传播到工作节点。如果使用该网络创建服务,并将其调度在该工作节点上,则该网络将显示在docker network ls中。
使用现在即将发布的1.13版本,您可以通过执行docker network create --attachable ...获得一个与非群集网络具有类似行为的网络。该网络对服务和正常容器都是有效的,对集群的所有成员都是可用的。在1.13.0-rc2中,这些内容似乎没有出现在docker network ls的输出中。
https://stackoverflow.com/questions/38429936
复制相似问题