保持 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直接到生产环境。
 
开发环境和生产环境的不同之处
 
 
 

[Docker] 容器开发环境最佳实践理论的更多相关文章

  1. 8.云原生之Docker容器镜像构建最佳实践浅析

    转载自:https://www.bilibili.com/read/cv15220861/?from=readlist 本章目录 0x02 Docker 镜像构建最佳实践浅析 1.Dockerfile ...

  2. [Docker] 写 Dockerfile 的最佳实践理论

      指导方针   创建短暂的容器   意思是 container 可以停止和销毁,接着以最小化启动和配置进行重新构建和替换.   理解构建的上下文   使用 docker build ,当前工作环境称 ...

  3. DOCKER学习_008:Docker容器的运行最佳实践

    一 容器分类 容器按用途大致可分为两类: 服务类容器,如 web server. database等 工具类容器,如cur容器, Iredis-cli容器 通常而言,服务类容器需要长期运行,所以使用 ...

  4. Docker容器日志管理最佳实践

    目录 一 .Docker 引擎日志 二.容器日志 2.1.常用查看日志命令--docker logs 2.2 .Docker 日志 驱动 三. 生产环境中该如何储存容器中的日志 一.当是完全是标准输出 ...

  5. Docker容器的原理与实践 (下)

    欢迎访问网易云社区,了解更多网易技术产品运营经验. Docker原理分析 Docker架构 镜像原理 镜像是一个只读的容器模板,含有启动docker容器所需的文件系统结构及内容Docker以镜像和在镜 ...

  6. [转]利用Docker构建开发环境

    利用Docker构建开发环境 Posted by  makewonder on 2014 年 4 月 2 日   最近接触PAAS相关的知识,在研发过程中开始使用Docker搭建了自己完整的开发环境, ...

  7. 新IT运维时代 | Docker运维之最佳实践-下篇

    上篇针对操作系统.主机配置.容器镜像.容器运行时四大方面分享一些Docker的运维经验,本篇将着重在Docker Daemon参数和权限两个方面进一步分享.(阅读上篇请点击右侧:新IT运维时代 | D ...

  8. 利用Docker构建开发环境

    最近接触PAAS相关的知识,在研发过程中开始使用Docker搭建了自己完整的开发环境,感觉生活在PAAS时代的程序员真是幸福,本文会简要介绍下Docker是什么,如何利用Docker来搭建自己的开发环 ...

  9. 如何使用Docker构建开发环境

    我们在开发中都会遇到这样的问题:在本地开发好功能后,部署到服务器,或者其他人拉到本地接着开发时,会出现功能无法使用的情况. 这些异常情况,大多数时候是因为系统不同而导致的依赖差异.因此,为了解决这个问 ...

随机推荐

  1. 游戏人工智能编程案例精粹(修订版) (Mat Buckland 著)

    https://www.jblearning.com/catalog/productdetails/9781556220784 第1章 数学和物理学初探 (已看) 第2章 状态驱动智能体设计 (已看) ...

  2. windows知识点2

    最近在使用win10系统的过程中,无法获取dns报错,上不了网.经过一番折腾,最终在用下面的方法,解决了问题.第二步很关键.完成步一下步骤重启电脑应该就可以上网了.12第一步:使用 ipconfig ...

  3. Python 反射(reflection)

    反射是指通过字符串映射或修改程序运行时的状态.属性.方法, 有以下4个方法 1.getattr(object, name, default = None) 根据字符串获取 obj 对象里对应 str ...

  4. vue-router 路由跳转:和name配对的是params,和path配对的是query

    1.命名路由name搭配params,刷新页面参数会丢失 2.路由path搭配query,刷新页面数据不会丢失 3.接收参数使用this.$router,就能获取到参数的值

  5. Unity 3D中不得不说的yield协程与消息传递

    1. 协程 在Unity 3D中,我们刚开始写脚本的时候肯定会遇到类似下面这样的需求:每隔3秒发射一个烟花.怪物死亡后20秒再复活之类的.刚开始的时候喜欢把这些东西都塞到Update里面去,就像下面这 ...

  6. 读取excel 文件到datatable

    上一篇文章介绍了将datatable 内容导出到excel 文件,这里介绍如何将一个excel 文件读取出来,并保持到datatable 中,实际这样的应用场景也是经常遇到的. 这里继续使用了Micr ...

  7. centos7虚拟机克隆后设置固定IP

    虚拟机centos7克隆一份出来之后,新centos7更改了固定IP,可是不生效.重启网卡时报错: network.service: control process exited, code=exit ...

  8. C++ 线性搜索算法演示的代码

    将做工程过程中比较好的内容做个备份,下边代码段是关于C++ 线性搜索算法演示的代码. #include<iostream>#include<conio> int linears ...

  9. [转]C# 4.7.2 安装

    遇到提示 “无法建立到信任根颁发机构的证书链” 下载地址:https://files.cnblogs.com/files/z5337/NetFramework%E8%AF%81%E4%B9%A6.ra ...

  10. redis 中的key值过期后,触发通知事件

    1.创建springboot工程,创建监听类 maven配置 <dependencies> <dependency> <groupId>org.springfram ...