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就会回报给你灵活性,更少的启动时间以及更好的易用性。

原文链接:Docker Best Practices(翻译:崔婧雯 审校:李颖杰)

原文发布时间为:2015-01-26 
本文作者:崔婧雯 
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:Docker最佳实践
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/224595

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。