使用带有 Swarm 的 Docker Machine 和通过 Docker 守护进程使用 Swarm 有什么区别?

What is the difference between using Docker Machine with Swarm and using Swarm through the Docker daemon?

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

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

  • A Docker 机器 是一个非常小的虚拟机,运行 是 Docker 引擎的一个实例。这意味着我们可以在其中放置 运行 Docker 个容器。可以理解为一个容器的容器。
  • Docker 引擎有 (since the 1.12 version) 一个名为 Swarm Mode 的模块,它提供 built-in 支持连接和编排多台机器(物理或虚拟 -- 如 Docker 机器)包含 Docker 引擎。这基本上构建了一个由管理器(中央节点)指导的节点网络。此时,可以复制服务实例,管理器将有效地将副本分布到节点上。
  • 或者,Docker 机器可以 运行 Swarm 容器(基于 Swarm image), which can be set up to behave in a similar way as in the previous case. Again, we can have a Docker Machine behaving as a manager and many others behaving as nodes, only this time the manager will not balance replicas of a service, but whole containers. When launching a new container, the manager will distribute it to a certain node. This is the standalone version of Swarm, and is only recommended when using a version of Docker previous to 1.12 -- 否则 Swarm 模式是更好的选择。

希望对您有所帮助。

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

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

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

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

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