一 docker的8个使用场景
1.简化配置
虚拟机的最大好处是能在你的硬件设施上运行各类配置不同的平台(软件, 系统), Docker在下降额外开销的状况下提供了一样的功能. 它能让你将运行环境和配置放在代码汇总而后部署, 同一个Docker的配置能够在不一样的环境环境中使用, 这样就下降了硬件要求和应用环境之间耦合度.
2.代码流水线管理
代码从开发者的机器到最终在生产环境上的部署, 须要通过不少的中坚环境. 而每个中间环境都有本身微小的差异, Docker给应用提供了一个从开发到上线均一致的环境, 让代码的流水线变得简单很多.
3.提高开发效率
不一样环境中, 开发者的共同目标:
一, 想让开发环境尽可能贴近生产环境.
二 , 想快速搭建开发环境
开发环境的机器一般内存比较小, 以前使用虚拟的时候, 咱们常常须要为开发环境的机器加内存, 而如今Docker能够轻易的让几十个服务在Docker中跑起来.
4.隔离应用
开发时会在一个台机器上运行不一样的应用.
一, 为了下降成本, 进行服务器整合
二, 将一个总体式的应用拆分红低耦合的单个服务(微服务架构)
5.整合服务器
Docker隔离应用的能力使得Docker能够整合多个服务器以下降成本. 因为没有多个操做系统的内存占用, 以及能在多个实例之间共享没有使用的内存, Docker能够比虚拟机提供更好的服务器整合解决方案.
6.调试能力
Docker提供了不少的工具, 这些工具不必定只是针对容器, 可是却适用于容器. 他们提供了不少功能, 包括能够为容器设置检查点, 设置版本, 查看两个容器之间的差异, 这些特性能够帮助调试Bug.
7.多租户环境
多租户环境的应用中, 它能够避免关键应用的重写.咱们一个特别的关于这个场景的例子是为loT(物联网)的应用开发一个快速, 易用的多租户环境. 这种多租户的基本代码很是复杂, 很难处理, 从新规划以应用不但消耗时间, 也浪费金钱.
使用Docker, 能够为每个租户的应用层的多个实例建立隔离的环境, 这不只简单并且成本低廉, 由于Docker环境启动的速度快, diff命令很高效.
8.快速部署
Docker为进程建立一个容器, 不须要启动一个操做系统, 时间缩短为秒级别.
能够在数据中心建立销毁资源而无须担忧从新启动带来的开销. 一般数据中心的资源利用率只有30% , 经过使用Docker并进行有效的资源分配能够提升资源的利用率.
二 docker的缺点sql
三 docker的相关知识点
Docker组件(核心):镜像、容器、库。
采用C/S架构:客户端(执行程序)→经过命令行和API形式和守候程序(提供Docker服务)进行通信。
镜像:一个只读的静态模板(框架体系);包含环境和应用执行代码(框架语言);采用分层机制。将新增数据经过联合文件系统附加在原基础上。
容器:一个运行时环境,是镜像的运行状态,是镜像执行的一种动态表现。
库:使用注册服务器(共有的or私有的)存储和共享用户的镜像,是某个特定用户存储镜像的目录。
*Docker特性:
*隔离性:libcontainer(默认容器)=>内核命名空间。
*安全性:内部(cgroups)| 容器和宿主主机(内核能力机制)。
*可度量性:cgroups(控制组)→资源度量和分配(用户)。
*移植性:AUFS(快速更新)→层的概念。
-----使用AUFS做为Docker容器的文件系统,提供的好处:docker
Docker优势(比较LXC):
*跨平台可移植性:按统一标准打包(镜像中),可传播。
*面向应用:优化部署应用(设计哲学)→API,接口及文档(体现)。
*版本控制:追踪、查询、记录版本信息(应用程序更改史)和回滚版本等
*组件复用:组件式搭建(基础镜像)→Python(运行环境) | postgreasql(基础镜像)。
*共享性:公共的注册服务器(可免费下载源码)。
安全