23

我刚刚阅读了 Docker 出色的入门指南,只是想确认我了解基本的 Docker 用语,然后再继续深入。这些定义在文档中有所提供,但其中许多文档都是基于示例的,没有给出以下概念的具体形式。

因此,我的理解是:

  • 服务:Docker 服务是应用程序的不同组件:前端可能是 React UI,后端可能是 Spring Boot Web 服务,您可能有 MySQL DB 以及 RabbitMQ 代理;这些都是不同的服务,都包含您的应用程序。
  • 集群:Docker 集群是指您有一个 Swarm 为跨 2 个以上 Docker 主机的应用程序管理 1 个以上服务;集群只是指运行服务容器的所有 Docker 主机。
  • Compose:Docker Compose 是一个用于管理服务、Swarms 和 Stacks 的工具。
  • Stack :当 Swarm Manager 为给定应用程序在给定集群上为多个 Service管理多个 Swarm 时,就会出现 Docker Stack;因此,Swarm 和 Stack 之间的区别在于,Swarm 仅适用于单个 Service,而 Stack 管理多个 Swarm,因此多个 Service 都包含一个可扩展的分布式应用程序。

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

4

5 回答 5

13

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

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

Docker Hub向您展示了您可以运行的所有不同映像。

集群:Docker 集群是指您有一个 Swarm 为跨 2 个以上 Docker 主机的应用程序管理 1 个以上服务;集群只是指运行服务容器的所有 Docker 主机。

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

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

Compose:Docker Compose 是一个用于管理服务、集群和堆栈的工具。

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

Stack:当 Swarm Manager 管理多个...

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

于 2017-06-12T13:42:14.667 回答
6

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

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

于 2017-06-12T13:22:36.553 回答
1

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

在此处输入图像描述

于 2020-11-09T01:30:01.507 回答
1

Swarm Mode:这是指使用声明式语法管理多节点环境的整体技术。它由一个分布在一定数量的管理器中的嵌入式 raft 数据库和一个不断纠正服务定义的当前状态和目标状态之间的差异的调度程序组成。

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

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

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

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

于 2020-11-09T01:46:38.323 回答
0

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

群概述

堆栈部署

于 2020-05-22T02:18:06.503 回答