一 docker 版本1.13及以上,compose版本1.11及以上。docker的搭建和运行compose参考官方文档完成
二 docker swarm 和compose 简介
Docker宣布在1.12版的引擎中内置编排能力,也就是 Swarm Mode,在容器之上引入了服务(service
)的概念,也实验性的推出了应用栈(stack
)来支持多服务应用的部署管理。但是 Docker 1.12 版本,服务的开发和操作缺乏类似Docker Compose
工具的支持,而且由于Docker Compose v1/v2是面向容器编排设计,和Swarm Mode中的概念上有很多不同。只可以用 docker-compose bundle
命令将已有 docker-compose.yml
转换为 Distributed Application Bundle
才能在Swarm mode中部署,非常不便,而且更为严重的是很多功能不支持,导致很多现有编排模板无法直接使用。
在2017年1月发布的 Docker 1.13版本中,Swarm mode迅速成熟,相应的工具支持也进一步完善。 Docker Compose v3 规范,已经全面支持 Swarm mode 概念。而且从 1.13 开始,Docker 命令行工具支持直接使用 v3 版本的 docker-compose.yml
文件来进行应用栈(stack
)部署管理,这大大简化了容器编排使用的复杂性。
本案例中,使用docker swarm集群,用compose文件来生成容器,并通过compose文件中的定义来确定容器具体在哪个主机生成,适合测试环境
具体的参数,看最后面的解释
docker stack rm bz
四 案例二
试验环境(docker swarm 搭建参考官网)此种方法适合用在线上
compose文件
验证swarm的高可用,直接把主节点
可以看到test1 位主节点,上面有2个容器 tomcat1 和nginx
停掉test1,来test2 上面看效果
可以看到test3成为主节点。我们在来看tomcat1和nginx
replicas:定义 replicated
模式的服务的复本数量
placement
:定义服务容器的部署放置约束条件
docker swarm 自带负载均衡功能,可以直接使用 docker service scale 服务名=n 来直接生成
参考文档:
https://www.oschina.net/news/81118/docker-1-13-0
http://www.cnblogs.com/atuotuo/p/6588331.html
https://yq.aliyun.com/articles/69444
http://www.troylc.cc/docker-compose/2017/02/25/Docker08docker-compose01.html
http://blog.daocloud.io/unfhdockerswarm/