Docker Swarm 发现仍然相关吗?

Docker Swarm discovery is still relevant?

我正在学习 docker swarm,并且对 swarm discovery 选项感到困惑,我看到互联网上的很多教程都使用这个选项来使用 docker-machine 创建容器,但是当我在 docker swarm doc 上输入文档时,它说:

You are viewing docs for legacy standalone Swarm. These topics describe standalone Docker Swarm. In Docker 1.12 and higher, Swarm mode is integrated with Docker Engine. Most users should use integrated Swarm mode.

那么,发现选项的用例是什么?所有教程都使用 docker-machine 来创建 swarm,我总是需要它,或者可以只在我集群中的机器上安装 docker,将它们加入 swarm 并使用 normal?

我看到了一些名称,例如 Docker SwarmDocker Swarm Mode,调用同一功能是否有任何区别或只是不同的方式?

问。 Docker Swarm 发现仍然相关吗?

A:,如果您使用 docker Swarm Modeoverlay network(见下文)


问。 Docker SwarmDocker Swarm Mode有区别吗?

A:,TL;DR Docker Swarm 已弃用,不应再使用,Docker Swarm Mode(我们应该说 Swarm Mode) 是集群容器的推荐方式,具有可靠性、负载均衡、扩展和滚动服务升级。


Docker Swarm (official doc) :

  • 是集群容器的老式方式 (<1.12)
  • 使用 dedicated container 构建 Docker Swarm 集群
  • 需要像 Consul 这样的发现服务来引用集群中的容器

Swarm Mode (official doc):

  • 新的和推荐的方式(>=1.12)在主机节点上集群容器(称为managers / workers
  • Docker engine内置,不需要额外的容器
  • 如果您使用 overlay network(DNS 解析在此网络内完成),则具有内置发现服务,您不需要额外的容器

你可以看看这个


问。我总是需要 docker-machine 来创建群吗?

A: No, docker-machine 是在云中创建虚拟主机的助手,如 amazon ec2、azure、digitalocean、google、openstack。 ..,或者你自己的虚拟盒子网络。

要创建 Swarm Mode,您需要:

  • 一个多主机集群,在每个主机(称为节点)上安装了 docker 引擎(这就是 docker-machine 所促进的)
  • 运行 docker swarm init 在您的第一个管理器节点上切换到 Swarm Mode
  • 运行 docker swarm join 在工作节点上将它们添加到集群中

Swarm mode 进行了一些细微的调整以提高高可用性(recommended number of managers in the swarm,云中多个可用性区域中的节点放置)

希望对您有所帮助!