12

在一个 swarm 中拥有多个 docker 机器(一个管理器和许多节点)和在一个 swarm 中拥有多个 docker 服务副本之间到底有什么区别?

4

2 回答 2

21

好吧,由于没有人回答这个问题,我继续在互联网上阅读更多内容,试图了解这两个概念之间的区别。这是我目前所理解的:

  • Docker 机器是运行 Docker 引擎实例的非常小的虚拟机。这意味着我们可以在其中运行 Docker 容器。可以理解为容器的容器。
  • Docker 引擎(从 1.12 版本开始)有一个名为Swarm Mode的模块,它为连接和编排许多包含 Docker 引擎的机器(物理或虚拟——如 Docker 机器)提供内置支持。这基本上构建了一个由管理器(中央节点)指导的节点网络。此时,可以复制服务的实例,并且管理器将有效地将副本分布在节点上。
  • 或者,Docker Machines 可以运行 Swarm 容器(基于Swarm 映像),可以将其设置为以与前一种情况类似的方式运行。同样,我们可以让 Docker Machine 充当管理器,而许多其他机器充当节点,只是这一次管理器不会平衡服务的副本,而是整个容器。启动新容器时,管理器会将其分发到某个节点。这是Swarm 的独立版本,仅在使用1.12 之前的 Docker 版本时才推荐使用——否则 Swarm 模式是更好的选择。

我希望这有帮助。

于 2017-01-12T15:37:59.047 回答
0

Docker Machine 是一种用于配置和管理 Dockerized 主机(带有 Docker 引擎的主机)的工具。通常,您在本地系统上安装 Docker Machine。Docker Machine 有自己的命令行客户端 docker-machine 和 Docker Engine 客户端 docker。您可以使用 Machine 在一个或多个虚拟系统上安装 Docker Engine。这些虚拟系统可以是本地的(当您使用 Machine 在 Mac 或 Windows 上的 VirtualBox 中安装和运行 Docker Engine 时)或远程(当您使用 Machine 在云提供商上配置 Dockerized 主机时)。Dockerized 主机本身可以被认为是,有时也被称为托管的“机器”。

https://docs.docker.com/machine/overview/#whats-the-difference-between-docker-engine-and-docker-machine

Docker Machine:用于配置和管理 docker 主机(运行 docker 引擎的虚拟主机)的工具。它会自动创建主机,在主机上安装 Docker 引擎,然后配置 docker 客户端。您可以使用 Machine 在本地计算机上使用 VirtualBox 或 VMWare Fusion 等虚拟化软件创建 Docker 主机。Docker 机器还支持各种云提供商,如 AWS、Azure、Digital Ocean、Google Compute Engine、OpenStack、RackSpace 等。

Docker Swarm:swarm 是一组 docker 主机,它们链接在一起组成一个集群。swarm集群由一个swarm manager和一组worker组成。您可以通过在 swarm 管理器上执行命令来与集群交互。使用 swarm,您可以将应用程序部署和扩展至多个主机。Swarm 有助于管理、扩展、联网、服务发现和集群中节点之间的负载平衡。

https://www.callicoder.com/docker-machine-swarm-stack-golang-example/

于 2020-10-19T13:12:30.627 回答