docker swarm与docker在生产中在单个主机上进行组合



是否有理由在生产中使用docker-swarm而不是docker-compose来部署单个主机?

我目前正在重写一个现有的应用程序。我的前任使用docker swarm建立了应用程序。但我不明白为什么:应用程序将只由运行两个服务的单个主机组成。这些服务只会通过RESTApi向kubernetes集群提供客户网络上的一些本地信息(因此没有实际负载或添加额外主机的理由(。

我浏览了Docker网站,除了在单个主机开发环境中测试部署外,找不到使用docker-swarm部署单个主机的理由。

docker-compose相比,使用docker-swarm在部署、网络等方面是否有好处。。。?

Docker Swarm和Docker Compose是截然不同的动物。Compose是一个构建工具,可以让你定义和配置一组相关的容器,而swarm是一个编排工具,可以管理多个docker引擎,让你(在某种程度上(把它们当作一个单元。Swarm公开了一个API,该API主要与Docker Remote API兼容,允许现有应用程序使用Swarm进行水平扩展,而无需完全检修容器引擎的现有接口。

也就是说,Docker Compose中与Docker Swarm重叠的大部分功能都是增量添加的。随着时间的推移,Compose不断发展,两者之间的区别也有所缩小。Swarm最终被集成到Docker引擎中,并引入了Docker Stack,允许Docker直接读取compose.yml文件,而无需使用Compose。

所以真正的问题可能是:docker compose和docker stack之间有什么区别不是很多。Compose实际上是一个单独的项目,用Python编写,在后台使用Docker API。Stack做了很多与Compose相同的事情,但被集成到了Docker中。Stack还想要预构建的图像,而compose将为您处理这些图像构建,这使得compose在开发时非常方便。

您正在处理的问题可能是这两种工具截然不同的时代的产物。Docker Swarm是Docker的一部分,如果需要,它可以轻松扩展(即使你现在不需要它,将来也可能很好(。另一方面,Compose(无论如何,在我看来(对于频繁调整图像和重建的开发情况更有用。

最新更新