Docker从1.12.0 版本开始,便已经将DockerSwarm集成进了Docker的引擎中。因此,Docker Swarm不需要单独进行安装。由于Docker Swarm内置了服务发现的功能,因此也不再需要进行服务发现配置了。Docker Swarm与Docker Compose类似,都是Docker官方提供的服务编排工具。但是二者所不同的是,Docker Compose 是在单个宿主机上创建多个容器,从而进行服务编排的工具;而 Docker Swarm 则可以在多个服务器或宿主机上创建容器,从而组成集群提供相应的服务。因此,从功能上看,Docker Swarm比Docker Compose更加强大。下图展示了Docker Swarm的体系架构。
视频讲解如下:
从图中可以看成,Docker Swarm集群是一个主从式的架构。其中有一个Swarm Manager的主节点用来管理集群中的容器资源。Swarm Manager对外暴露了操作的接口,外部的用户可以通过这个接口来实现对集群的管理。用户也通过Swarm Manager可以向集群发出操作指令。对于较大规模的Docker集群,可以将Swarm Manager单独部署到一台服务器上,从而提高它的性能。Swarm Node节点可以从Swarm Manager节点上接收命令,从而创建相应的容器来运行应用程序。但作为用户来说,只能笼统地向集群发出指令而不能具体到某台具体的服务器上要干什么,这是由Swarm Manager上的Scheduler调度器完成的。