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基础是一个名为libcompose
( https://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