Docker Swarms和Stacks:有什么区别?

我刚刚阅读了Docker的入门指南,只是希望在进一步深入之前确认我理解Docker的基本用法。 这些定义在文档中有所提供,但是很多这些文档都是以实例为基础的,而没有给出以下概念的具体forms。

因此,我的理解是:

  • 服务 :Docker Services是应用程序的不同组件:前端可能是一个React UI,后端可能是一个Spring Boot Web服务,你可能有一个MySQL数据库以及一个RabbitMQ代理; 这些都将是不同的服务,包括你的应用程序, 是吗?
  • 集群 :Docker Clusters是当你有一个Swarm在2个Docker主机上为一个应用程序pipe理1+个服务的时候。 群集只是简单地引用你的服务容器运行的所有Docker主机, 是的?
  • 撰写 :Docker Compose是一个用来pipe理服务,Swarms和Stacks的工具, 吗?
  • 堆栈 :Docker堆栈发生在Swarm Manager为给定的应用程序pipe理给定集群上的多个服务的多个Swarms时 ; 因此Swarm和Stack之间的区别在于Swarm只适用于单个Service,而Stack则pipe理多个Swarms,因此多个Services都包含可分发和分布式应用程序, 是的?

所以我问:我对这些基本术语的理解是否正确,还是被某种方式误导了? 提前致谢!

服务:Docker服务是您的应用程序的不同组件…

服务是一个图像docker群pipe理你。 你可能会要求它运行这个图像的三个实例,而docker swarm会这样做(如果可以的话)。

Docker Hub显示你可以运行的所有不同的图像。

集群:Docker Clusters是当你有一个Swarm在2个Docker主机上为一个应用程序pipe理1+个服务的时候。 群集只是简单地引用你的服务容器运行的所有Docker主机,是的?

是啊。 一个集群由工人(运行服务)或pipe理者(控制跨节点的服务调度)组成。 节点节点既可以是工作也可以是pipe理者。

我仍然在pipe理人员的头上,但是我相信你应该有一个奇数,至less有三个,否则如果一个pipe理者消失,你可能会有问题。

撰写:Docker Compose是一个用来pipe理服务,Swarms和Stacks的工具,是吗?

Docker compose用于将图像合并到一个正在运行的应用程序中。 例如,它可能包括一个前端代理,一个网站和一个后端数据库。 这个技术与docker swarm没有任何关系,除了你可以用它来部署你的应用程序( https://codefresh.io/blog/deploy-docker-compose-v3-swarm-mode-cluster/

堆栈:Docker堆栈发生在Swarm Manager正在pipe理多个…

堆栈用于docker工人云。 这可能不是你在找什么:)

Docker swarm是一个集群和编排工具。 它用于跨多个节点调度容器。 您可以将多个节点组合成一个集群,然后将“docker run”命令发送到该集群。

Docker堆栈是在特定环境中组成应用程序的服务的集合。 堆栈文件的扩展名是yaml(也是yml)。