Docker 最佳实践
Docker 最佳实践
【编者的话】本文是Docker使用过程中的一些最佳实践。虽然很多都是老话重谈,但是很多人在使用过程中还是没有遵守,比如每个进程只使用一个容器这个最佳实践,有很多人都来问,如果不这样行不行,当然行,但是如果你想长久的用Docker,那还是请遵守最佳实践吧。
精益、简单,易于管理,这是Docker的精髓。最佳实践可以确保你利用到Docker的所有优势,使得这个强大工具能够发挥最大的效果。本文的Docker最佳实践可以帮助你学习使用已经在开发者中十分流行的Docker容器化技术。
使用可信任的Build
可信任Build让一切变得简单。可信任的Build这个特性有助于简化和共享repository。关键之处是在push任何build之前在本地完成所有开发和测试。如果你在本地构建和测试容器,当其被push到别的地方时也会用同样的方式工作。
最少化Layer
太多的层次使得事情无端复杂,避免不必要的层次。要点是在可读性和最少可能的层次间找到最优平衡。只在真正需要增加层次的时候增加额外的层次。
每个进程只使用一个容器
将应用解耦合到不同的容器中,每个进程一个容器。这使得系统更容易横向扩展,也使得容器可以再利用。处理相互依赖的服务时,使用容器的关联特性,而不是将它们直接放在同一个Docker容器里。
不要安装不需要的Package
避免安装不需要的package。这会帮助减少文件大小,减少依赖的复杂性,并且降低构造时间。比如,在数据库镜像里就没有必要安装文本编辑器,这完全是在浪费资源。任何时候尽可能地减少冗余。
使用DockerIgnore
DockerIngore可以很好得从构建上下文以及最终镜像里排除不必要的文件和目录。这个特性使得容器可以更快更有效地加载,节省很多浪费的启动时间。
构建容易被替换的容器
容器是临时的。也就是说,我们在设计容器就应该考虑到,仅用很少的步骤和配置就可以将其停止、删除和替换。构建Docker容器时就要考虑到之后这个容器如何能被轻易丢弃替换。
注意使用标签
Docker Build会生成一个易读的标签,帮助人们更轻松地管理镜像。使用-t选项就可以使用Docker Build特性。追本溯源,Docker容器化最佳实践是关于如何让容器更简单更纯净。避免任何会导致程序膨胀的不必要操作。时刻考虑到精简,那么Docker就会回报给你灵活性,更少的启动时间以及更好的易用性。
原文发布时间:2015-01-30
本文来自云栖合作伙伴“linux中国”
相关文章
- PB级海量数据服务平台架构设计实践
- 用随机森林分类算法进行Iris 数据分类训练,是怎样的体验?
- 一台能教会孩子编程的机器人
- 一份最新的互联网行业薪资报告,你敢看么?
- 人工智能、大数据、云计算等有望成为行业下一个引擎?
- 安全开发:百年编程语言的体检报告
- 从发明新的排序算法开始扯淡
- 需求变化与IoC
- IoC/DIP其实是一种管理思想
- 扩展PHP的五个简单技巧,让单服务器并行支撑30000用户
- Tier5 新标准?别闹了,亲
- Bob大叔忠告:专业软件开发者必须精通的事项
- IT 业的下一次革命:SDN 软件定义网络
- 解决Java/MySQL性能问题的思路
- 十款值得我们选择的开源开发板
- 路透社:美国政府成恶意程序最大买家
- Spring Cloud实战小贴士:Ribbon的饥饿加载(eager-load)模式
- PHP语言需要避免的10大误区
- 500家国内AI企业大数据分析:产业布局与融投风云
- PHP 语言需要避免的 10 大误区