带swarm选项的docker机器与运行docker swarm init和join的机器之间的差异

带swarm选项的docker机器与运行docker swarm init和join的机器之间的差异,docker,docker-machine,docker-swarm,Docker,Docker Machine,Docker Swarm,我想和docker swarm建立一个集群。然而,我有点困惑,带swarm选项的docker机器与在一台主机上初始化swarm manager并作为其他主机的工作人员加入不同 下面是我的问题的一个例子: 具有swarm选项的docker机器 docker-machine create --driver virtualbox --swarm --swarm-master --virtualbox-hostonly-cidr "10.0.0.1/24" node1 docker-machine cr

我想和docker swarm建立一个集群。然而,我有点困惑,带swarm选项的docker机器与在一台主机上初始化swarm manager并作为其他主机的工作人员加入不同

下面是我的问题的一个例子:

具有swarm选项的docker机器

docker-machine create --driver virtualbox --swarm --swarm-master --virtualbox-hostonly-cidr "10.0.0.1/24" node1
docker-machine create --driver virtualbox --swarm --swarm-discovery "token://..." --virtualbox-hostonly-cidr "10.0.0.1/24" node2
docker-machine create --driver virtualbox --swarm --swarm-discovery "token://..." --virtualbox-hostonly-cidr "10.0.0.1/24" node3
docker-machine create --driver virtualbox --virtualbox-hostonly-cidr "10.0.0.1/24" node1
docker-machine create --driver virtualbox --virtualbox-hostonly-cidr "10.0.0.1/24" node2
docker-machine create --driver virtualbox --virtualbox-hostonly-cidr "10.0.0.1/24" node3

eval $(docker-machine env node1)
docker swarm init

eval $(docker-machine env node2)
docker swarm join --token <token> <node1_IP>

eval $(docker-machine env node3)
docker swarm join --token <token> <node1_IP>
将管理器节点作为工作节点加入

docker-machine create --driver virtualbox --swarm --swarm-master --virtualbox-hostonly-cidr "10.0.0.1/24" node1
docker-machine create --driver virtualbox --swarm --swarm-discovery "token://..." --virtualbox-hostonly-cidr "10.0.0.1/24" node2
docker-machine create --driver virtualbox --swarm --swarm-discovery "token://..." --virtualbox-hostonly-cidr "10.0.0.1/24" node3
docker-machine create --driver virtualbox --virtualbox-hostonly-cidr "10.0.0.1/24" node1
docker-machine create --driver virtualbox --virtualbox-hostonly-cidr "10.0.0.1/24" node2
docker-machine create --driver virtualbox --virtualbox-hostonly-cidr "10.0.0.1/24" node3

eval $(docker-machine env node1)
docker swarm init

eval $(docker-machine env node2)
docker swarm join --token <token> <node1_IP>

eval $(docker-machine env node3)
docker swarm join --token <token> <node1_IP>
docker机器创建--驱动程序virtualbox--virtualbox仅主机cidr“10.0.0.1/24”节点1
docker机器创建--驱动程序virtualbox--virtualbox仅主机cidr“10.0.0.1/24”节点2
docker机器创建--驱动程序virtualbox--virtualbox仅主机cidr“10.0.0.1/24”节点3
eval$(docker机器环境节点1)
docker群初始化
eval$(docker机器环境节点2)
docker swarm加入——令牌
eval$(docker机器环境节点3)
docker swarm加入——令牌

当SWARM需要设置发现密钥/值存储时,您使用的第一种方法来自旧docker版本

docker-machine create --driver virtualbox --swarm --swarm-master --virtualbox-hostonly-cidr "10.0.0.1/24" node1
docker-machine create --driver virtualbox --swarm --swarm-discovery "token://..." --virtualbox-hostonly-cidr "10.0.0.1/24" node2
docker-machine create --driver virtualbox --swarm --swarm-discovery "token://..." --virtualbox-hostonly-cidr "10.0.0.1/24" node3
您使用的第二种方法是Swarm模式

要在swarm模式下使用Docker,请安装Docker 1.12.0或更高版本

这是在Docker 1.12.0中引入的。这是您现在应该使用的方法,因为所有新命令,如
docker service
docker stack
都需要swarm模式。他们不会处理旧的