我们都知道在去年Docker轰动容器社区的在Docker Engine中集成了编排能力,并随着1.12的Docker版本发布,但是那个版本的编排还有很多的不足,比如:
不兼容传统的Docker Compose格式,从Compose迁移到服务复杂。不支持复杂的服务发布方式和回滚等而在近期发布的1.13的版本中,Docker对Docker Engine内置的编排能力做了很多的更新,我们下面看一下Docker Engine 1.13中内置的编排能力有哪些更新:
Docker 1.13中将之前的Compose加入到Docker Engine中,通过docker stack命令进行管理:
docker stack deploy 部署一个Compose模板到Docker集群中作为一个stack,相当于之前的docker-compose up docker stack ls 列出目前的所有stack docker stack ps 展示一个stack中对应的容器,相当于之前的docker-compose ps docker stack rm 删除一个stack以及它包含的服务和容器 docker stack services 展示stack下面对应的服务有了Docker stack的命令,我们就可以方便的把以前系统的Compose模板以内置编排Service的方式部署到现在的Docker集群中。
在1.12版本的Docker Engine中,那时我们如果想要暴漏服务到集群外部访问,只能映射到Swarm集群的Controll节点上,这样就导致了集群中不同服务不能映射同样的端口,在1.13的Docker版本中,允许服务只映射到主机的端口,就可以让集群不同节点上服务端口不再冲突了。可以通过docker service create --publish将服务的端口映射到节点主机的端口
在docker service update中增加更新的控制和回滚的参数,分别是:
--update-max-failure-ratio 服务多少比例的容器升级失败才认为服务更新失败,通过这个参数的指定,能够保证更好的控制服务的灰度发布。 --update-monitor 配置服务的一个实例更新多久才认为超时失败。 --rollback 在服务更新失败后回滚服务的版本,通过这个参数,可以快速的响应服务更新问题及回滚版本。通过docker service update增加的这些服务更新的控制和回滚的参数和功能,我们可以使用docker service更好的控制应用的迭代。
