zoukankan      html  css  js  c++  java
  • [Docker] 容器开发环境最佳实践理论

     
    保持 image 小
     
        选择合适的 base image。
     
     
        如果多个 image 有共同之处,考虑创建一个 base image 来共享组件,并在其上构建 image。
     
        保持生产 image 小并支持 debug,考虑使用生产 image 作为 base image 来 debug image。
     
        构建 image 时,总是使用 版本信息,目标环境(prod,test) 来打标签,而不要依赖自动创建的 latest 标签。
        
    在哪里和如何持久化应用数据
     
        不要把数据存储在容器的可写层,相比使用 volume 和绑定mounts,增加了 container 大小且I/O低效。
     
        作为代替,使用 volumes 存储数据。
     
        使用 bind mounts 更适合在开发期间。
     
        生产中使用 secrets 来存储敏感数据,对非敏感数据使用 configs。
        
    在可能的情况下使用 swarm 服务
     
        可能的情况下,使用 swarm 服务设计你的应用并具有规模化的能力。
     
        即使只需要运行一个独立的应用实例,swarm services 提供了一些高级特性,servies 配置是说明性的,docker总是让实际状态与预期的保持同步。
     
        网络和volumns 可以在 swarm services 中连接和断开,docker 使用非破坏的方式重新部署独立的服务。独立的容器需要根据配置改变手动停止删除创建。
     
        若干特性,如存储 secrets 和 configs 的能力,让 image 尽可能通用,image 和 container 不存储敏感信息。
     
        让 docker stack deploy 代替 docker pull,当新节点添加到 swarm,imags会自动被pull。
     
    对测试和部署使用 CI/CD
     
        当版本控制检测到变更或pull request,使用 Docker Cloud 或其他 CI/CD 管道自动 build 和 tag image 并测试。Docker Cloud 可以部署app直接到生产环境。
     
    开发环境和生产环境的不同之处
     
     
     

  • 相关阅读:
    第十二周作业
    第九周作业
    第八周作业
    第七周作业
    第六周作业
    参考博文地址
    第五周作业
    用例设计思路
    测试方法的四大金刚
    网络模型及访问过程
  • 原文地址:https://www.cnblogs.com/farwish/p/9221579.html
Copyright © 2011-2022 走看看