Swarm和Compose结合使用?


使用Swarm可以轻松的管理和调度docker集群,使用Compose可以轻松的组合多个容器服务。
但是如何结合Swarm和Compose把一组服务轻松地部署到一个集群上呢?或者说两者能结合吗?
已邀请:

苦逼少侠 - 去哪儿网互联网研发工程师,docker爱好

赞同来自: wangzi19870227 wisen


自问自答。

终于在官方找到了,Swarm和Compose结合的说明
简单来讲就是尚不支持使用Swarm和Compose把一组服务轻松地部署到一个集群上,暂时只能把容器都部署到集群的某一台上。

苦逼少侠 - 去哪儿网互联网研发工程师,docker爱好

赞同来自: DockOne hisen_huawei


找到一个Docker Mechine、Swarm、Compose结合的例子:

Demo of the Machine Swarm Compose integration(墙外)
Demo of the Machine Swarm Compose integration(墙内)

视频演示的结果和官方文档说的不太一样,使用Machine创建Swarm集群后,Compose在Swarm master上跑,已经可以把应用跑在不同host上。

田浩浩 - wizmacau developer

赞同来自: xeonzhang


Swarm Demo,里面我把Machine或Compose部分给删除了
其中:
1. 如果没有那么多节点,可以用Machine创建的来代替。
2. 如果不想要用命令行来运行Docker容器,可以用Compose代替。

田浩浩 - wizmacau developer

赞同来自: franklin798


两个 docker machine + compose + swarm 的教程 12

reneliu - PaaS爱好者

赞同来自:


compose现在还很初级,坑很多,以前的Fig也不成熟

田浩浩 - wizmacau developer

赞同来自:


swarm是集群工具,compose是运行容器的快捷工具 本来就能结合使用,他们之间不冲突,再加machine可以创建多个docker虚拟环境(如果你没有多台服务器测试的话)三者一起,建立开发测试集群环境简单方便快捷!

franklin798

赞同来自:


@田浩浩 请问,使用swarm manager与compose如何结合使用?谢谢!

franklin798

赞同来自:


@田浩浩:放在yml里?manage是要最先启动的吧,这种使用方式我还是有点想不明白。我看这个问题关注的人不少,不知你能否单独发一遍做一下说明呢?感谢回复。ps(验证邮件总是收不到,只能放在这里回复你了)

franklin798

赞同来自:


经过实验,发现@田浩浩 的方法是可行的,不过就是每次都要设置环境变量,不知是否还有更好的方法,可以不用每次都设置DOCKER_HOST这个环境变量 @苦逼少侠

要回复问题请先登录注册