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

时间:2017-01-09 16:51:35

标签: docker docker-machine docker-swarm swarm

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

2 个答案:

答案 0 :(得分:15)

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

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

我希望这会有所帮助。

答案 1 :(得分:0)

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

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

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

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

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