我们都知道在去年Docker轰动容器社区的在Docker Engine中集成了编排能力,并随着1.12的Docker版本发布,但是那个版本的编排还有很多的不足,比如:
- 不兼容传统的Docker Compose格式,从Compose迁移到服务复杂。
- 不支持复杂的服务发布方式和回滚等
而在近期发布的1.13的版本中,Docker对Docker Engine内置的编排能力做了很多的更新,我们下面看一下Docker Engine 1.13中内置的编排能力有哪些更新:
支持Compose/(docker stack)
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集群中。
允许Docker Service映射主机的端口
在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
更好的控制应用的迭代。