Docker Swarm与Swarm模式的区别?

时间:2017-11-17 09:23:34

标签: docker docker-swarm service-discovery

初始化swarm与此命令之间有什么区别:

docker swarm init --advertise-addr <manager-ip>
docker -H <worker-ip> swarm join --token <worker-token>

这一个:

docker run swarm manage <consul-ip>
docker -H <worker-ip> run swarm join --advertise=<worker-ip> <consul-ip>

为什么我们需要swarm图片?

2 个答案:

答案 0 :(得分:3)

Docker Swarm (也是Swarm classic)与 Swarm Mode 根本不同。 Docker 1.12版本将继续支持Native Swarm功能,这样做是为了保持向后兼容性。

Docker Swram(经典)

  • 与Docker Engine分开,可以作为Container
  • 运行
  • 需要外部KV商店,如Consul,etcd,Zookeeper

用法示例:

docker run swarm manage <consul-ip>
docker -H <worker-ip> run swarm join --advertise=<worker-ip> <consul-ip>

群集模式(新的,首选)

  • 在Docker引擎中集成
  • 无需单独的外部KV商店

用法示例:

docker swarm init --advertise-addr <manager-ip>
docker -H <worker-ip> swarm join --token <worker-token>

来源:Comparing Swarm, Swarmkit and Swarm Mode

关于像这样的另一个问题的很好的答案:The relation between “docker/swarm” and “docker/swarmkit”

答案 1 :(得分:1)

如果使用docker容器运行,则可以从一个服务器运行多个swarm实例。而且,群网络将在沙箱环境中运行,而不是在主机操作系统上运行。

如果要在docker容器中运行它,则需要swarm图像。