是否有理由在生产中使用docker-swarm
而不是docker-compose
来部署单个主机?
我目前正在重写一个现有的应用程序。我的前任使用docker swarm建立了应用程序。但我不明白为什么:应用程序将只由运行两个服务的单个主机组成。这些服务只会通过RESTApi向kubernetes集群提供客户网络上的一些本地信息(因此没有实际负载或添加额外主机的理由(。
我浏览了Docker网站,除了在单个主机开发环境中测试部署外,找不到使用docker-swarm
部署单个主机的理由。
与docker-compose
相比,使用docker-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(无论如何,在我看来(对于频繁调整图像和重建的开发情况更有用。