Docker Swarm和Swarm mode有什么区别?

24

我想知道有没有人能区分这两者。它们的命名方式很相似。


Docker Swarm 是将节点进行分组/集群化和管理的概念,同时也是 Docker 的一个特性。Swarm 模式是 Docker Engine 可以初始化的技术模式。 - Griffin
我找到了一个非常好的答案:“docker/swarm”和“docker/swarmkit”的关系 - giokoguashvili
3个回答

37

Docker Swarm 是一个独立的产品,可用于聚合多个 Docker 主机。在 Docker 1.12 版本之前,它是聚合主机的唯一本地选项,并需要进行分布式状态、服务发现和安全性的大量额外设置。

使用 Docker 1.12,Swarm Mode 已集成进 Docker Engine 中。要运行集群,只需在多台机器上安装 Docker,运行 docker swarm init 来切换到 Swarm Mode,然后运行 docker swarm join 将更多节点添加到群集中。状态、发现和安全性均已包括,无需进行任何设置。

Swarm Mode 是可选的,但如果您想运行多个 Docker 主机,则这是首选方式。您可以在 1.12 中获得可靠性、负载平衡、扩展性和滚动服务升级的功能,而且未来 Swarm Mode 可能会加入更多新功能。原始的 Docker Swarm 产品可能只会在未来进行维护更新(尽管Swarm 是开源的,就像Docker Engine一样)。


11
从营销角度来看,我会说他们搞砸了。它们是两个不同的实体,名字非常相似。 - Stefano Borini

4

Docker Swarm(也称为Swarm Classic)与Swarm Mode本质上不同。原生的Swarm功能将继续得到Docker 1.12版本的支持,这样做是为了保持向后兼容性。

Docker Swarm(经典版)

  • 独立于Docker Engine,并可作为容器运行
  • 需要外部KV存储,如Consul,etcd,Zookeeper

使用示例:

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

Swarm Mode(新的、更优选)

  • 集成在Docker引擎内部
  • 无需单独的外部KV存储

使用示例:

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

1

Docker Swarm:

Docker Swarm是一项服务,允许用户创建和管理一组Docker节点,并安排容器。Docker Swarm中的每个节点都是一个Docker守护程序,Docker守护程序使用Docker API进行交互。

Swarm Mode:

当我们创建一个或多个Docker引擎的集群时,称为Swarm Mode。Swarm Mode在Docker Engine 1.12中引入。Swarm由一个或多个节点组成,这些节点可以是物理或虚拟机器,运行Docker Engine。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接