首页 > 其他 > 详细

Dockerfile 最佳实践

时间:2019-07-22 19:35:56      阅读:92      评论:0      收藏:0      [点我收藏+]

内容: [Intro Guide to Dockerfile Best Practices]

本文涉及以下几方面:

  • 构建时间 (Build Time)
  • 镜像大小 (Image size)
  • 可维护性(Maintainability)
  • 可再现性 (Reproducibility)



构建时间

在一次发布过程中, 镜像可能会经过多次重建(rebuild), 最后发布(release). docker 镜像在构建过程中,会保留缓存(cache), 在重建的过程中可以降低构建时间.

所以, 提高 cache 的利用率, 可以提升发布效率.

变化会引起缓存的失效, 在 Dockerfile 中, 只要一条执行命令发生变化, 就会引起其后所有的执行缓存失效.

所以, 提供缓存的利用率, 可以如下入手:

  • 降低引起变化的可能行
  • 降低发生变化后的影响

1.调整命令的

技术分享图片

  • 降低发生变化后的影响

2.COPY 项目更加具体

技术分享图片

  • 降低引起变化的可能行

3.合并构建单元

技术分享图片

  • 降低引起变化的可能行


镜像大小

1.移除不必要的依赖

技术分享图片

  • debug 工具可以 container 中安装

2.删除包管理工具缓存

技术分享图片

  • 只有在同一条 RUN 命令中移除才会真正的生效.


可维护性

1.优先使用官方镜像

技术分享图片


2.指定镜像标签

技术分享图片

  • 默认 latest 标签极大可能会导致项目构建失败.

3.选择最小的版本

技术分享图片



可再现性

1.从源码构建

技术分享图片

  • 防止因为构建环境不一致导致发布失败

2.分离获取依赖步骤

技术分享图片


3.多阶构建

技术分享图片

  • 多阶构建可以有效降低镜像的大小

Dockerfile 最佳实践

原文:https://www.cnblogs.com/tiantiandas/p/intro-guide-to-dockerfile-best-practices.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!