dockerfile最佳实践

  • 构建出来的镜像尽可能“小”

    • 选择适合的尽量小的基础镜像
      • 尽量让每个镜像的用途都比较集中、单一,避免构造大而复杂、多功能的镜像
      • 过大的基础镜像会造成构建出臃肿的镜像,一般推荐比较小巧的镜像作为基础镜像
    • 提供详细的注释和维护者信息
      • Dockerfile也是一种代码,需要考虑方便后续扩展和他人使用
      • 使用明确的具体数字信息的版本号信息,而非latest,可以避免无法确认具体版本号,统一环境
    • 尽量减少镜像层的数目
      • 减少镜像层数建议尽量合并RUN指令,可以将多条RUN指令的内容通过&&连接
    • 不要安装不必要的包
    • 构建后删除临时的包
  • 让构建镜像过程尽可能“快”

    • 使用清洁的构建上下文(build context)
      • 及时删除临时和缓存文件,避免构造的镜像过于臃肿,并且这些缓存文件并没有实际用途;
    • 利用构建时缓存(build cache)
      • 合理使用缓存、减少目录下的使用文件,使用.dockeringore文件等
      • 在开启缓存的情况下,内容不变的指令尽量放在前面,这样可以提高指令的复用性;
  • 让镜像变得“好用”

    • 选择官方基础镜像
    • 设置正确的程序入口点
    • 不要加入不必要的限制
  • 让构建镜像变得”省事、省心“

    • 选择高级别基础镜像
      • 如果确实要从外部引入数据,需要制定持久的地址,并带有版本信息,让他人可以重复使用而不出错。
    • 保持Dockerfile尽可能简单
    • 使用经过安全扫描的基础镜像
Copyright © suredandan 2018 all right reserved,powered by GitbookUpdateTime: 2020-04-09 16:42:02

results matching ""

    No results matching ""