stack 将应用所包含的 service,依赖的 secret、voluem 等资源,以及它们之间的关系定义在一个 YAML 文件中。相比较手工执行命令或是脚本,stack 有明显的优势。

  1. YAML 描述的是 What,是 stack 最终要达到的状态。
    比如 service 有几个副本?使用哪个 image?映射的端口是什么?而脚本则是描述如何执行命令来达到这个状态,也就是 How。显而易见,What 更直观,也更容易理解。至于如何将 What 翻译成 How,这就是 Docker swarm 的任务了,用户只需要告诉 Docker 想达到什么效果。

  2. 重复部署应用变得非常容易。
    部署应用所需要的一切信息都已经写在 YAML 中,要部署应用只需一条命令 docker stack deploy。stack 的这种自包含特性使得在不同的 Docker 环境中部署应用变得极其简单。在开发、测试和生成环境中部署可以完全采用同一份 YAML,而且每次部署的结果都是一致的。

  3. 可以像管理代码一样管理部署。
    YAML 本质上将应用的部署代码化了,任何对应用部署环境的修改都可以通过修改 YAML 来实现。可以将 YAML 纳入到版本控制系统中进行管理,任何对 YAML 的修改都会被记录和跟踪,甚至可以像评审代码一样对 YAML 执行 code review。应用部署不再是一个黑盒子,也不再是经验丰富的工程师专有的技能,所以的细节都在 YAML 中,清晰可见。

Docker Swarm 的主题就讨论到此,下一节我们开始学习 Kubernetes。

书籍:

1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html

2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html

最新文章

  1. 详解Js中文件读取机制
  2. 移动h5开发资源整理
  3. [geeksforgeeks] Lowest Common Ancestor in a Binary Search Tree.
  4. HDU 5437 Alisha’s Party
  5. Android(java)学习笔记126:Android Studio中build.gradle简介
  6. CALayer -- 备忘
  7. MySQL中函数、游标、事件、视图
  8. ant android打包--学习第一弹
  9. Cocos2d-x shader学习2: 模糊(Blur)
  10. 201521123092,《java程序设计》第1周学习总结
  11. Angular记录(9)
  12. 把 Nginx 创建为 Windows 的一个服务
  13. Python matplotlib图片转化成矢量图并裁剪
  14. C# 获取 mp3文件信息【包括:文件大小、歌曲长度、歌手、专辑】
  15. oracle无法启动asm实例记录
  16. golang学习笔记13 Golang 类型转换整理 go语言string、int、int64、float64、complex 互相转换
  17. HDU-2874-森林求LCA/tarjan
  18. C#正则表达式类Match和Group类的理解
  19. netfilter/iptables
  20. f5双机配置

热门文章

  1. 崩溃 golang入坑系列
  2. poj2524 解题报告
  3. Android APP 性能优化的一些思考
  4. CCF-201403-1-相反数
  5. 有关BOM头的一些知识
  6. 前端CSS的工程化——掌握Sass这四大特性就够了
  7. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十七节--Quartz与ABP框架Abp.Quartz及扩展
  8. javascript设计模式——模板方法模式
  9. 在CentOS上为Docker开启SELinux
  10. 第五章 MVC之 FileResult 和 JS请求二进制文件