保持 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. SSM学习笔记

    Spring MVC[入门]就这一篇! https://www.jianshu.com/p/91a2d0a1e45a SpringMVC非注解方式和注解方式不能同时使用.注解方式只需要配一句话就行了d ...

  2. idea 启动项目提示 Command line is too long. Shorten command line for Application or also for Spring Boot default configuration.

    在.idea 文件夹中打开workspace.xml文件找到<component name="PropertiesComponent">,在标签里加一行  <pr ...

  3. day02 python数据类型

    python里面常见的数据类型 目录 一.int 整形只有一个方法bit_length() 可以显示二进制长度 a = 10b = a.bit_length()print(b)1010 二.bool ...

  4. Internet Explorer 安全区域注册表项说明

    引用网址:http://support.microsoft.com/kb/182569/zh-cnInternet Explorer 安全区域设置存储在以下注册表子项下面: HKEY_LOCAL_MA ...

  5. tomcat中间件提交表单数据量过大警告处理方案

    http://www.bubuko.com/infodetail-976418.html http://www.cnblogs.com/yg_zhang/p/4248061.html tomcat中间 ...

  6. 在 Linux 系统中读取 GBK 编码的文档

    Linux 系统中,默认使用 UTF-8 编码.有时,我们下载的一些文件(比如 TXT 电子书,中文字幕等)使用了 GBK 编码,这样,当我们读取这些文件时,就会看到乱码.一般来说,有两种解决办法. ...

  7. python基本语法汇总

    From: https://www.cnblogs.com/yunguoxiaoqiao/p/7640040.html 1.常用列表的操作 D = {} D = {'spam': 2, 'tol': ...

  8. 面向对象版Tab栏切换

    <div class="wrapper" id="wrapper"> <ul class="tab" id="t ...

  9. Oracle数据库中序列(SEQUENCE)的用法详解

    Oracle数据库中序列(SEQUENCE)的用法详解   在Oracle数据库中,序列的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值.本文我们主要介绍了 ...

  10. Apartment 2019

    Apartment 2019 最近在学习3D建模,Apartment 2019是我的个人项目. 初步的想法是,先在网上找公寓建筑的平面图以及室内效果照片,根据这些参考图像来练习建模与渲染. 建模顺序与 ...