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最佳实践

时间: 2024-11-17 13:27:26

Docker最佳实践的相关文章

5个建议遵循的Docker最佳实践

本文讲的是5个建议遵循的Docker最佳实践[编者的话]本文介绍了5个Docker在实际应用场景下的最佳实践,能够帮助我们构建安全可靠的应用. Docker不是唯一的容器技术,但是它是事实上的容器标准,对于容器应用及开发者来说,Docker是独一无二的.对Docker的支持已经被集成到各种各样的产品和平台中,并且许多组织已经使用Docker容器或者试图理解如何跟上潮流. 使用Docker并不是一件非常困难的事情,但是如果遵循一些最佳实践,将会用起来更加高效.下面是五个Docker最佳实践,你应该

Docker最佳实践!尽在2014 Container技术大会

2014 Container技术大会(Container Conference 2014)将于2014年10月18日在北京中关村软件园举办.作为当前最炙手可热的Container技术,Docker将是本次大会最鲜明的主题之一.CSDN云计算频道已经邀请Docker官方和Google Kubernetes核心开发人员,他们将来到中国,和国内用户分享Docker的技术细节,探讨Docker未来的发展方向.国内阿里.百度.腾讯.华为.搜狐.乐视 .Ucloud.青云等公司Docker技术实践者,也将同

Docker日志收集最佳实践

云栖TechDay31期,阿里云容器服务技术专家戒空给大家带来Docker日志收集最佳实践的演讲.本文主要从传统日志处理开始谈起,接下来着重分析Docker日志处理,包括stdout和文件日志,其中还有fluentd-pilot,接着分享了日志存储方案Elasticsearch.graylog2和SLS,最后对正确写日志给出了建议.   以下是精彩内容整理: 传统日志处理 说到日志,我们以前处理日志的方式如下: 日志写到本机磁盘上 通常仅用于排查线上问题,很少用于数据分析 需要时登录到机器上,用

Docker在云平台上的最佳实践: 当容器服务遇到深度学习

12月9日云栖计算之旅线下沙龙第2期<Docker在云平台上的最佳实践>,阿里云技术专家必嘫给大家带来了"当容器服务遇到了深度学习"的演讲.本文主要从深度学习的兴起开始谈起,进而介绍了Docker技术.阿里云容器服务,重点介绍了支持云上的高性能计算应用需要哪些,包括GPU的调度.隔离和监控. 视频回顾 深度学习 人工智能已经进入了深度学习时代.传统的让机器自动化的方式已经不再适合解决一些问题,机器学习开始兴起,让机器像小孩子一样自己去认识世界.而深度学习本身是机器学习的一个

【转载】Docker 镜像优化与最佳实践

阿里云高级研发工程师御坂在云栖TechDay41期的线下沙龙活动中分享了Docker镜像优化与最佳实践.本文为沙龙内容回顾. 从Docker镜像存储的原理开始,针对镜像的存储.网络传输,介绍如何在构建中对这些关键点进行优化.并介绍Docker最新的多阶段构建的功能,以解决构建依赖的中间产物问题. 镜像概念 镜像是什么? 从一个比较具体的角度去看,镜像就是一个多层存储的文件,相较于普通的ISO系统镜像来说,分层存储会带来两个优点: 一个是分层存储的镜像比较容易扩展,比如我们可以基于一个Ubuntu

Docker 镜像优化与最佳实践

云栖TechDay41期,阿里云高级研发工程师御坂带来Docker镜像优化与最佳实践.从Docker镜像存储的原理开始,针对镜像的存储.网络传输,介绍如何在构建中对这些关键点进行优化.并介绍Docker最新的多阶段构建的功能,以解决构建依赖的中间产物问题.   以下是精彩内容整理: 镜像概念 镜像是什么?从一个比较具体的角度去看,镜像就是一个多层存储的文件,相较于普通的ISO系统镜像来说,分层存储会带来两个优点,一个是分层存储的镜像比较容易扩展,比如我们可以基于一个Ubuntu镜像去构建我们的N

使用Docker部署Python应用的一些最佳实践

问题描述 本篇文章源自作者团队在长期开发过程中总结的宝贵经验,其中Supervisor.Gunicorn以及Nginx更是在使用Python开发Web应用时最常用的软件,因此对于打算使用Docker部署Python应用的读者而言,这些最佳实践是很有参考价值.同时希望各位在日常实践过程中,也能将各自踩到过的"坑"以及宝贵的经验分享出来,大家共同进步!我们可以使用Docker简单而高效的部署Python应用,同时,也有一些最佳实践来帮助我们愉快的完成部署.当然,也不是说这些最佳实践就是完成

业内docker技巧和最佳实践的想法

业内docker技巧和最佳实践的想法   最佳实践问题   这里有一些技巧,可能符合或可能不符合最佳实践,回复评论将不胜感激.•保持映像小:使用--no-install-recommends选项的apt-get,安装真正的依赖性,而不是大的元数据包(如的texlive-full).•避免结合RUN命令,等创建更多的AUFS层? (限为一次42,但现在是至少127).•可以使用Run git clone......将数据添加到一个容器到ADD位置,这缓存无效.•使用自动化构建链接到Github上,

Docker 日志的5个最佳实践

本文讲的是Docker 日志的5个最佳实践[编者的话]微服务和容器之间契合得很好,但日志记录却成了个问题.设置监控时必须要考虑到这个问题. [烧脑式Kubernetes实战训练营]本次培训理论结合实践,主要包括:Kubernetes架构和资源调度原理.Kubernetes DNS与服务发现.基于Kubernetes和Jenkins的持续部署方案 .Kubernetes网络部署实践.监控.日志.Kubernetes与云原生应用.在CentOS中部署Kubernetes集群.Kubernetes中的