从我读到的内容看来,Docker-Compose是一个在单个主机上创建多个容器的工具,而Docker Swarm是一个工具,可以在Docker Stack的帮助下完成同样的操作,但具有更多的控制权和多个主机.我浏览了教程,也遇到了这个帖子:
docker-compose.yml与docker-stack.yml有什么区别?
我得出的结论是,当你可以将Docker Swarm与Docker Stack一起使用时,没有理由使用Docker-Compose.他们甚至可以使用相同的docker-compose.yml.
似乎Docker-compose出现在swarm和堆栈之前,可能是swarm + stack的新解决方案使得compose过时,但它仍然是遗留原因.这个想法是否正确?如果没有,Docker-Compose在开发或生产环境方面对Docker Swarm和Docker Stack有什么好处?
有Docker Swarm(现在内置在Docker中)和Docker-Compose.人们似乎只在单个节点上运行容器时使用Docker-Compose.但是,Docker-Compose不支持任何deploy配置值,请参阅https://docs.docker.com/compose/compose-file/#deploy,其中包含mem_limit和cpus,这似乎很好/很重要,可以设置.
所以也许我应该使用Docker Swarm?虽然我只在单个节点上部署.此外,安装说明将更容易让其他人遵循(他们不需要安装Docker-Compose).
但也许有理由不在单个节点上使用Swarm?
我在下面发布了一个答案,但我不确定它是否正确.
编辑:请注意,这不是基于意见的问题.如果你看看下面的答案,你会发现有关于此的"必须"和"不能做"的事实.