Docker Swarms 和 Stacks:有什么区别?

Docker Swarms and Stacks: What's the difference?

我刚刚阅读了 Docker 的优秀 Getting Started 指南,只是想确认我理解 Docker 的基本用语,然后再进一步。这些定义在文档中有点,但其中很多文档都是基于示例的,没有给出以下概念的具体形式。

因此,我的理解是:

所以我想问:我对这些基本术语的理解是正确的还是在某种程度上被误导了?

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

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

Services: Docker Services are the different components of your application...

一个服务就是一张图片docker swarm 为您管理。您可能会要求它 运行 此图像的三个实例,并且 docker swarm 会这样做(如果可以的话)。

Docker Hub 向您展示所有您能看到的不同图像 运行。

Cluster: Docker Clusters are when you have a Swarm managing 1+ Services for an application across 2+ Docker Hosts; the Cluster simply refers to all the Docker Hosts where your Service containers are running.

是的。集群由节点组成,这些节点要么是工作人员(运行 服务),要么是管理人员(控制跨节点的服务调度)。请注意,节点可以同时是工作人员和管理人员。

我仍然在考虑经理,但我相信您的目标应该是拥有至少 3 个奇数,否则如果经理消失,您可能会遇到问题。

Compose: Docker Compose is a tool used to manage Services, Swarms and Stacks.

Docker compose 用于将图像组合成一个工作应用程序。例如,它可能包括前端代理、网站和后端数据库。这项技术与 docker swarm 无关,特别是...除非您可以使用它在 swarm 中部署您的应用程序 (https://codefresh.io/blog/deploy-docker-compose-v3-swarm-mode-cluster/)

Stack: Docker Stacks occur when a Swarm Manager is managing multiple...

堆栈用于 docker 云。这可能不是您要找的:)

Swarm 用于创建和管理 docker 集群。它更喜欢主机管理和服务管理。 Stack依赖swarm创建的集群,只是一个管理工具,偏向于服务管理

swarm overview

stack deploy

我做这个是为了帮助我理解堆栈的概念。

Swarm Mode:这是指用声明式语法管理multi-node环境的整体技术。它包括一个分布在管理器仲裁中的嵌入式 raft 数据库,以及一个不断纠正当前状态和服务定义的目标状态之间差异的调度程序。

集群:一组由 Swarm 模式管理的节点。

节点:单个docker引擎,是集群的一部分。每个节点可以是一个 Worker 或一个 Manager。管理人员既可以 运行 工作负载,又负责维护 raft 数据库并为 运行 调度程序选择领导者。

Stack:这主要被视为在 Swarm 模式中部署的服务、网络和卷集合的命名空间。目前它是一个客户端构造,用于查找具有特定标签的对象。堆栈映射到以 Swarm 模式部署的组合文件(docker-compose 也可用于将组合文件作为组合项目部署到单个 docker 引擎)。

服务:图像的定义、将其部署为容器时使用的配置以及在 Swarm 模式集群中将容器部署到何处。一项服务可能会导致一个或多个容器具有相同的配置设置。 Swarm 模式将定义一个 DNS 条目,该条目将负载平衡到具有服务名称的容器。通过组合多个副本和滚动更新,可以在不停机的情况下对服务进行更改。