docker机器与swarm选项和运行docker swarm init和join之间的区别

时间:2017-08-21 01:20:09

标签: docker docker-machine docker-swarm

我正在尝试使用docker swarm设置群集。但是,我对如何使用swarm选项的docker-machine与在一个主机上初始化一个swarm管理器以及作为其他主机的worker加入不同而感到有点困惑。

以下是我的问题的一个示例:

具有swarm选项的docker-machine

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>

1 个答案:

答案 0 :(得分:1)

当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模式

  

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

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