使用Docker Machine和Swarm以及通过Docker守护程序使用Swarm有什么区别?

Ale*_*rge 11 docker swarm docker-swarm docker-machine

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

Ale*_*rge 18

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

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

我希望这有帮助.

  • 这是不正确的。Docker Machine 不是虚拟机。它是一种用于远程管理潜在的多台 Docker 机器的机制。当您将计算机连接到另一台 Docker 主机时,您可以在本地执行命令(例如“docker-compose up -d”,但它们实际上将针对远程服务器执行。了解更多信息,请访问 https://docs.docker.com/machine /concepts/.您的误解可能来自 Docker for Windows 和 Docker for Mac 如何创建 Linux 虚拟机来托管 Docker,但这与 Docker Machine 无关。 (2认同)
  • 你已经很接近了,但你对 docker-machine (命令)可用于将 Docker 引擎初始化到虚拟环境中这一事实感到困惑,其中“Docker Machine”是一个虚拟机。Docker 可以托管在物理主机上,您也可以使用“docker-machine”与该物理主机交互,它不必虚拟化。例如,我有时使用 Docker Machine 的方式是设置一个物理 Docker 主机,然后使用 docker-machine 初始化该主机上的 Docker Engine 并与其建立连接。该主机不是虚拟机,并且不会创建任何虚拟机。 (2认同)