Docker Compose对Docker Swarm和Docker Stack有什么好处?

从我看来,似乎Docker-Compose是一个在单个主机上创build多个容器的工具,而Docker Swarm是一个可以在Docker Stack的帮助下完成同样的事情,但具有更多控制权并且在多个主机上的工具。 我经历了教程,也遇到了这个线程:

docker-compose.yml vs docker-stack.yml有什么区别?

而且我得出的结论是,当您可以将Docker Swarm与Docker Stack结合使用时,没有理由使用Docker-Compose。 他们甚至可以使用相同的docker-compose.yml。

Docker-compose似乎是在swarm和stack之前出现的,也许swarm + stack的新解决scheme已经过时了,但仍然是遗留的原因。 这个想法是否正确? 如果没有,Docker-Compose在开发或生产环境方面对Docker Swarm和Docker Stack有什么好处?

Docker-compose似乎是在swarm和stack之前出现的,也许swarm + stack的新解决scheme已经过时了,但仍然是遗留的原因。 这个想法是否正确?

总之,是的。 撰写之前所有的Swarm的东西(它起源于第三方实用工具,称为fig )。 更糟糕的是,甚至有两种不同的Swarms,旧的Swarm(一个是独立的工具)和Swarm Mode(Swarm Mode)(这些内置在docker二进制中)。

它似乎正在演变成Docker中内置的服务和部署概念。 但是我猜Docker Compose和Swarm Mode部署的东西会一起生活。

知道Docker Compose基础是一个名为libcomposehttps://github.com/docker/libcompose )的库,其他第三方实用工具可以用来支持docker-compose.yml文件格式来部署(以Rancher和rancher-compose为例)。 我会想象他们会努力继续支持libcompose

我不清楚,如果Docker群集部署的东西实际上使用libcompose 。 在我粗略的search中,似乎Swarm模式并没有实现libcompose并且做它自己的事情。 我不确定这是如何涉及到Docker Compose和libcompose的未来。 解释你认为合适的…

从我发现的: Docker Swarm,Docker Compose和Docker Newtorks有什么区别?

Docker Compose是一个客户端工具,允许你运行一个包含多个组件的应用程序栈

所以在我们的场景中,您将使用Docker Compose来实现。 您将定义一个spec文件,您将在其中定义一个容器为每个组件(db,app和web tier)构build的方式。 你也可以指定这些如何相互作用。 每个和许多其他事物有多less个实例。


Compose是定义和运行多容器Docker应用程序的工具。

Docker Swarm是一个服务器端function,使您能够:

  • Swarm是一个Docker节点(机器)的集群,充当启动多个容器的底层资源。 可以在整个群体中协调和部署服务。

您可以将多个节点组合成一个集群,然后发送“docker run”命令到这个集群(实际上是Swarmpipe理器节点)。Swarm将处理在其中一个节点上调度(启动)该容器。

  • 允许所有节点上的容器相互通信

查看官方文档: Swarm模式概述和Docker Compose